@kyanny's blog

My thoughts, my life. Views/opinions are my own.

+{} という書き方について

先日 +{} という書き方を紹介したところ (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 は高くてちょっと・・・」という方は、こちらも良い本なのでおすすめです。


プログラミングPerl〈VOLUME1〉

プログラミングPerl〈VOLUME1〉

  • 作者: ラリーウォール,ジョンオーワント,トムクリスチャンセン,Larry Wall,Jon Orwant,Tom Christiansen,近藤嘉雪
  • 出版社/メーカー: オライリー・ジャパン
  • 発売日: 2002/09/01
  • メディア: 単行本
  • 購入: 8人 クリック: 245回
  • この商品を含むブログ (125件) を見る
続・初めてのPerl 改訂版

続・初めてのPerl 改訂版

  • 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,吉川英興(監訳),伊藤直也(監訳),田中慎司(監訳),株式会社ロングテール/長尾高弘
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2006/10/21
  • メディア: 大型本
  • 購入: 9人 クリック: 389回
  • この商品を含むブログ (99件) を見る