Perlで配列の要素の数を取得する覚え書き
よく忘れてしまうので、自分用にPerlで配列の要素数を取得するための覚え書きです。
一番簡単なのがスカラーに代入することです。
#!/usr/bin/perl use strict; use warnings; my @array=(1, 1, 1); my $arrayLen = @array; print $arrayLen,"\n"; # 3が表示されます。
scalar関数で評価すると、代入しなくていいので手間が省けます。
#!/usr/bin/perl use strict; use warnings; my @array=(1, 1, 1); print scalar(@array),"\n"; # 3が表示されます。
他にも$#を使う方法があるのですが、こちらは要素数ではなく最後の要素番号を返します。
#!/usr/bin/perl use strict; use warnings; my @array=(1, 1, 1); print $#array,"\n"; # 2が表示されます(最初の要素番号が0のため)。 print $#array+1,"\n"; # 1を足せば要素数の3になります。
滅多に使わないけど、配列の各要素に対して処理をかける時とかに便利。
#!/usr/bin/perl use strict; use warnings; my @array=(1, 1, 1); # パターン1 for(my $i=0; $i<=$#array; $i++){ $array[$i] = $array[$i]*3; } # パターン2 for(my $i=0; $i<$#array+1; $i++){ $array[$i] = $array[$i]*3; }
とかとか・・・。
Enjoy!
【関連エントリー】
・Perlで空の配列の要素数を数えてみた