Hatena::Groupperl

Press::Alt_R

2010-08-02

Perlわかば (アルパカ 2.1.1 grep)

grep EXPR, LIST
grep BLOCK LIST

EXPR/BLOCKは、LISTからの要素を $_ で受ける。

# 桁の合計が奇数になる数字だけを取り出す

my @input_numbers = (3 4 6 12 15 21 24 100 311);
my @odd_digit_sum = grep{
  # 最終的に真偽値を返す処理
  my $input = $_;               # このブロックのLISTからの受け皿は $_ (サブルーチンとの違いに注意)
  my @digits = split //, $input # 数字を空の正規表現で分割=1文字ごとに分割
  my $sum;
  $sum += $_ for @digits;       # foreach my $keta(@digits){$sum += $keta;}
  $sum % 2;                     # 奇数→2による剰余は1→真、偶数→偽
} @input_numbers

TasnimTasnim2014/05/06 18:16Way to use the internet to help people solve prbmoels!