perlでハッシュとかのカッコの前に付いてるプラスの意味
{}の前にプラスが付いて、+{}とかなってるのをよく見るけど、やっとこれの意味が分かったのでメモ。
このカッコはハッシュ以外にも使われるから、「これはハッシュリファレンスですよ」と明示するためのもの。
use strict; use warnings; use Data::Dumper; local $\ = "\n"; sub p { print Dumper shift; } sub hashref_ng { { @_ } } sub hashref_ok { +{ @_ } } my $ng = hashref_ng(1,2,3,4); my $ok = hashref_ok(1,2,3,4); p $ng; p $ok;
実行結果
% perl hashref.pl $VAR1 = 4; $VAR1 = { '1' => 2, '3' => 4 };
こんな常識も知らずにおりますよ、と