kiyo_hikoのブログ

メモ+日記?

Perl:配列を奇数番目要素と偶数番目要素に分ける

あと一歩シンプルな書き方が思いつかなくて、とりあえずメモっときます。
割とどうでもいい話です。

やりたいこと

@data = qw/able baker charlie dog easy fox/;
# これを次の形にする
@even_index_data = qw/able charlie easy/;
@odd__index_data = qw/baker dog fox/;

逆zip的な事がやりたくて。

答え

@even_index_data = @data[grep { $_ % 2 == 0 } 0..$#data];
@odd__index_data = @data[grep { $_ % 2 == 1 } 0..$#data];

Perlではこれが一番シンプルかな。パフォーマンスは考えてません。

世間では

stackoverflow.com - 本質的には多分上と同じ。

www.perlmonks.org - 配列にpushする人とか。