お仕事のお手伝いで,いろいろやってます。
久しぶりに,講習会の申し込みフォームの変更のために,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桁です。”);
}
のように,前に,桁数のチェックを入れて,回避しました。