『「リストへの代入をscalar contextで評価すると、代入の右辺によって生み出される要素の数が返される。』 これを利用したのがsn_dairy.cgiの以下の記述です。
unless (($HoD->{form}{year},$HoD->{form}{month}) = $HoD->{form}{list} =~ /^(\d{4})(\d{2})$/) { &error("エラーです\n",$HoD->{config}); }
$HoD->{form}{list} =~ /^(\d{4})(\d{2})$/ という式でマッチしてcaptureされた結果をlist contextで評価するので、 $HoD->{form}{year}と$HoD->{form}{month}にマッチした値がそれぞれ代入されます。 ここでマッチがされないと、何の結果も返されないのでその数は0となり、unlessでの評価の際に偽となります。
|
2003年8月7日(木)
No.33
|
|