PerLでCGI—–むずい!!!!!

お仕事のお手伝いで,いろいろやってます。

久しぶりに,講習会の申し込みフォームの変更のために,Perlをいじりました。思い通りの動作になるのに
一苦労。

本当に初歩的なつまづきで,悪戦苦闘です。

CやVBAでは,if 文で等しいか等しくないかの表記は,「=」や「==」を使いますが,この表現をして,
久しぶりにはまりました。Perlでは,

IF $nantoka eq ”なんとか” {等しい時の処理}

ということで,「eq」を使うんですねえ。これを忘れてしまい,時間ばかりかかってしまいました。

それと,今回も正規表現でつまずづきました。8桁の数字が条件にマッチするかどうかを判断するのに
入力された数字が8桁以上だと,8桁の部分が条件にマッチしてると,通ってしまいました。

if ($kaiin !~ /^1([0-9]{7})/) {
  &error(“1から始まる8桁の半角数字でご記入ください。”);
}

これは,1から始まる8桁の数字が入力されることを求めるものですが,8桁以下の数字だときちんと
判断できるのですが,8桁以上だと,8桁までの数字がマッチしていると,通ってしまします。
別な表記の正規表現もあるのかもしれませんけど,分からないので,

if (length($kaiin) > 8) {
 &error(“数字は8桁です。”);
}

のように,前に,桁数のチェックを入れて,回避しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA