先日 +{} という書き方を紹介したところ (http://d.hatena.ne.jp/a666666/20081114/1226662515)、質問のコメントをいただいたので、「プログラミング Perl」に書かれている解説を紹介します。下手に自分の言葉で説明するよりもずっと正確なので。
プログラミング Perl VOLUME1 第3版 285 ページ 「8.2 リファレンスを生成する」より抜粋
ブラケットには適用されない注意点が1つある。ブレースは(ブロックを含め)ほかの用途にも使われるので、文の先頭にブレースを置く場合には、その前に + か return を置いて曖昧さをなくして、開きブレースがブロックの開始ではないことを Perl に知らせなければならない場合もある。例えば、新しいハッシュを作って、そのハッシュへのリファレンスを返す関数を書く場合、次のような選択肢がある:
sub hashem { { @_ } } # 何も言われないが誤り -- @_ を返す sub hashem { +{ @_ } } # Ok. sub hashem { return { @_ } } # Ok.
ここ以外にも、他の本で同様の解説がされていたはずですが、そちらは忘れてしまいました。たぶんオライリー社の「続・初めての Perl」あたりだったと思います。「プログラミング Perl は高くてちょっと・・・」という方は、こちらも良い本なのでおすすめです。
- 作者: ラリーウォール,ジョンオーワント,トムクリスチャンセン,Larry Wall,Jon Orwant,Tom Christiansen,近藤嘉雪
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2002/09/01
- メディア: 単行本
- 購入: 8人 クリック: 245回
- この商品を含むブログ (125件) を見る
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,吉川英興(監訳),伊藤直也(監訳),田中慎司(監訳),株式会社ロングテール/長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2006/10/21
- メディア: 大型本
- 購入: 9人 クリック: 389回
- この商品を含むブログ (99件) を見る