民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS 恥を忍んで...Perl のこれを知らなかった

<<   作成日時 : 2009/06/16 00:12   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Perl プログラマにはおなじみのこの記法。実は私は知らなかった。
%map = (
  red => 0x00f,
  blue => 0x0f0,
  green => 0xf00,
);

今まで知らなかったから、当然自分では使ったことがなかった。

さらに恥ずかしいのは、今まで読んだ、人のコードでは当然この記法は使われていたはずなのに、今日の今日までずっと見落として、何の不思議も感じずにいたことだ。

今日、ふとした拍子に、あれ? こうじゃね?
%map = (
  'red' => 0x00f,
  'blue' => 0x0f0,
  'green' => 0xf00,
);

と思って、実際に両方の記法を試してみたのだが、どちらも問題なく動作してしまった。

動作するのは分かったけれど、今度はなぜ動作するのかが分からない。
結局、CPAN を当たって
http://perldoc.perl.org/perldata.html
の中下段の
The => operator is mostly just a more visually distinctive synonym for a comma, but it also arranges for its left-hand operand to be interpreted as a string -- if it's a bareword that would be a legal simple identifier.

という記述を見つけることができた。

=> 演算子を使うと、左側のオペランドは自動的に文字列として認識してもらえるらしい(ただし、単純な場合のみ)。

CPAN に書いてあるのだから、今後は安心してこの記法を使っていくことができる。
しかし、どうして今までこれを知らずに生きてこられたのか、今度はそれが分からない。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
恥を忍んで...Perl のこれを知らなかった 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる