Perl を今さら始める人ってのもかなり奇特だとは思いますが、まぁ何かの役に立てば。
- +{ } って?
- 結論から言えばただの無名ハッシュです。
- 何故プラスを付けるのかと言えば、それがブロックではなく無名ハッシュなんだと明示するため、ただそれだけです。
- 逆に、ブロックである事を明示したければ {; hogehoge} の様に、ブレースの中に ; を書きます。
- 関数呼び出しには & がいるんじゃないの?付いてないやつはなんなの?
- 関数呼び出しは「基本的には & を付けます」。ただ、それがコンテキスト上関数と分かるもの(例えば、それ以前に既に sub によって関数が定義されている時)に関しては、& を付けなくても動作します。
- なんか定義があいまいなので、個人的にはあくまで & を付けた方がいいだろうな、と思ってます。その方が単純に分かりやすい。
- リファレンスを参照しているはずなのに、中身が取れてしまう?
- 矢印記法(->)は、添字的なモノの間に挟まっている場合は省略できます。
- 添字的なモノとは、[] とか {} だと理解していますが、ちょっと怪しいので間違ってたらごめんなさい。
- 例えば、$a[0]->[0] は $a[0][0] と書く事もできます。
- なので、こちらのコードも動作します。
- 詳しくは「続・初めてのPerl」など参照の事…。
Perl Mongers の方からすれば当たり前すぎる事かもしれないんですが、イチから学んでる人にとっては、この辺すら理解不能だったりするのでメモがてら書いてみました。