Perl の \@list と [@list] には、どんな違いがありますか?
Perl のリストをリファレンスにするときには、\
を使うと思います。
125> my @list = (1..3);
$res[75] = [
1,
2,
3
]
126> my $x = \@list;
$res[76] = [
1,
2,
3
]
しかし、map の場合は、\
が使えない(?) ので、[]
を使っています。
134> my $x = \map { $_ } @list;
$res[84] = \3
135> my $x = \{ map { $_ } @list };
Odd number of elements in anonymous hash at reply input line 1.
$res[85] = \{
'1' => 2,
'3' => undef
}
136> my $x = [ map { $_ } @list ];
$res[86] = [
1,
2,
3
]
いろいろ覚えたくないので、
「\
を使わず、常に[]
を使えば良いのでは?同じことできるし」、
と思ったのですが、
この2つには、何か違いがあるのでしょうか?
143> my $x = [@list];
$res[89] = [
1,
2,
3
]
によると、
A reference to an anonymous array can be created using square brackets:
ということなので、
@list
が展開できるのは、本来の使い方ではない、ということでしょうか?
(資料が少なくて探しづらいので、検索キーワードをいただけるだけでも助かります)