home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

Perl/codepiece/count_array1

作成日: 2007-02-25 22:45:43   /   last updated at: 2008-12-28 22:46:37
カテゴリ: Perl 

  • 配列の要素を数えるには何通りか有る。
  • しかし、"$#ary"は、 エディタが#以降をコメントとして色分けしてしまう。
  • というわけで、それ以外の方法にトライしてみた。
  • コードピース
#!/usr/bin/perl
use Data::Dumper;

my @ary = (1, 2, 3, 4);
print Dumper(@ary), "\n";

# 一昔前の入門書で見かけた配列サイズの取得方法。
# 正確にはサイズでなく、最後の添字を返す。
print "count = ", $#ary, "\n";

# PerlのCOP(Context Oriented Programming)を活かしたサイズの取得方法。
# Perlが勝手にスカラーに直す。このとき、Perl側で良い案配に配列サイズとして
# 評価してくれる。
$sz = @ary;
print "count = $sz\n";

print '4 > @ary = ', (4 > @ary), "\n";
print '4 == @ary = ', (4 == @ary), "\n";
print '4 < @ary = ', (4 < @ary), "\n";
print "\n";

# COPのおかげで、違和感のない見栄え。
for(my $i = 0; $i < @ary; $i++) {
	print @ary[$i], "\n";
}
print "\n";

foreach my $i (@ary) {
	print $i, "\n";
}
  • 出力
$VAR1 = 1;
$VAR2 = 2;
$VAR3 = 3;
$VAR4 = 4;

count = 3
count = 4
4 > @ary =
4 == @ary = 1
4 < @ary =

1
2
3
4

1
2
3
4

Perlのコンテキスト判別のおかげで、エディタにとっても優しい書き方ができた。


original url: https://www.glamenv-septzen.net/view/131