Perl::joinとかsplitとかmapとかgrepとか
引き続きリャマ本とアルパカ本から。
join
my @foo = (1, 3, 5, 7, 9);
print "\@foo is @foo\n";my $bar = join ":", @foo;
print "\$bar is $bar\n";
[結果]
@foo is 1 3 5 7 9
$bar is 1:3:5:7:9
配列なんかもひとつにまとめちゃうんだもんね。
split
my @hoge = split(/:/, $bar);for (@hoge) {
print "$_\n";
}
[結果]
1
3
5
7
9
ひとつの変数だったものをまた配列化できた。
map
my @upup = map { "100$_" } @hoge ;
print "\@upup = @upup\n";
[結果]
@upup = 1001 1003 1005 1007 1009
for (@upup){
print $_ + 2,"\n" ;
}
[結果]
1003
1005
1007
1009
1011
変なのー。
grep
my @goo = qw(2 4 6 8);
my @kis = qw(1 3 5 7 9);my $num = "2";
my $ok = undef;$ok = grep {/$num/} @goo ;
print "@goo の中に $num があった\n" if $ok ;$ok = grep {/$num/} @kis ;
print "@kis の中に $num があった\n" if $ok ;
真偽の他に引数でもの渡してって/pattern/にひっかかったヤツを変数に入れたりすることもできた。
my @matched = grep { eval{/pattern} } @check_list
みたいなヤツ。