mapと波括弧とプラスの話
前回に引き続いて、こういう書き方もできるよっていう話。
use strict; use warnings; use v5.10; use Data::Dumper; my @foo = qw/0 1 2 3 4/; my @bar = map $_ * 2, @foo; say Dumper( \@bar );
これを実行するとこんな感じ。
$ perl aaa.pl
$VAR1 = [
0,
2,
4,
6,
8
];
こんな感じで、実行したい式を引数に渡すことが出来る。
ポイントとして、引数の区切りにカンマを忘れないこと。
カンマを忘れてしまうと、ブロック扱いになってシンタックスエラーになる。
そして、次は波括弧の前にプラスを付ける例。
use strict; use warnings; use v5.10; use Data::Dumper; my @foo = qw/0 1 2 3 4/; my @bar = map +{ $_ => $_ }, @foo; say Dumper( \@bar );
これは、前回の記事が理解できれば何のことはないですね。
$ perl bbb.pl
$VAR1 = [
{
'0' => '0'
},
{
'1' => '1'
},
{
'2' => '2'
},
{
'3' => '3'
},
{
'4' => '4'
}
];
ちなみに波括弧の前にプラスを付けないと、
シンタックスエラーになって実行できなかったです。
という訳で、波括弧の前にプラスが付いてても、
「ただのハッシュリファレンスかー。」って思えば問題ないですね。
ついでに、こちらの最後の方も目を通しておくと良いですね。
http://perldoc.jp/func/map
おしまい。
Leave a Comment