2006-05-12
|| って左辺をscalarにしちゃうのか。
素で知りませんでしたよ。ちなみにorは左辺をscalarにしたりしません。
my @foo = $self->meth || qw/default/;
とかやっててしばらく悩んでました。。。*1
追記
or と || は優先順位の違いだけなのでは。my @foo = ($self->meth or qw/default/); も結果は同じになりそう。
あ、ほんとだ。比較演算子がscalarを要求して、それのタイミングで問題になるってことか。
ということは、
sub meth { my $self = shift; my @res; ... wantarray? @res: \@res; }
というメソッドを作って、
warn $self->meth? "true": "false";
とかやると常にtrueになるわけですね。こうするなら
return unless @res; wantarray? @res: \@res;
にしろってことかな。
いつかハマりそうだ。。。
ようやくグループにひとりオプションができた!
ファイル共有を使いたかったので、ちょっとうれしい。
http://hatena.g.hatena.ne.jp/hatenagroup/20060512/1147402864
あー、でも、今更かな……。
AdSenseのIDが、
キーワードはうちのになってたけど、BBSははてなだった。
どういう仕様なんだろう……。
*1:$self->methの戻り値がなければ@fooに'default'が入ってて、$self->methに戻り値があれば、その個数が@fooに入る。