プロが教えるわが家の防犯対策術!

こんにちわ。perlの正規表現について教えてください。

unless ($a =~ /[0-9]/){
&err1('数字をいれてください');
}

unless ($b =~ /[0-9]/){
&err1('数字をいれてください'');
}

unless ($c =~ /[0-9]/){
&err1('数字をいれてください'');



上の3つのunless文は$a,$b,$c以外はすべて同じなのでこれをひとつにしたいのですが、どうやって記述すべきでしょうか?($a,$b,$c=~ /[0-9]/)とか($a =~ /[0-9]/ or $b =~ /[0-9]/ or $c =~ /[0-9]/)ってやってみてもだめでした^^教えてください。

A 回答 (3件)

とりあえず


if ($a !~ /[0-9]/ || $b !~ /[0-9]/ || $c !~ /[0-9]/){
&err1('数字をいれてください');
}
でいいですが
ループにして
foreach $x (($a, $b, $c)){
if($x !~ /[0-9]/){
&err1('数字をいれてください');
last;
}
}
とかでもいいと思います

この回答への補足

ありがとうございました。勉強になりました。

補足日時:2005/08/10 15:16
    • good
    • 0

同じ処理が複数出てきたら関数化が基本ですね。


数字チェック関数を作りましょう。
それからif文でひとつにまとめたらどうですかね?

if( numchk($a) || numchk($b) || nunchk($c) )

って感じで。

この回答への補足

ありがとうございます。

補足日時:2005/08/10 15:17
    • good
    • 0

サブルーチン化するのはどうでしょうか?


$a~$cを引数で持っていくってのはどうっすか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!