【perl】配列〜要素の数や添え字を調べる〜
#! /usr/bin/perl use strict; use warnings; my @array = (31, 54, 76, 9786); #配列をスカラーに代入すると、配列の要素数が返る my $length = @array; print "$length\n"; #こんな感じ↓で書いちゃっても大丈夫 my @array1 =qw( 453 78654 45 75621 siueniue noi239gne sioineg78654 s ); #scalar関数を使っても配列の長さ(要素数)がはかれちゃうよ。 print scalar(@array1),"\n"; #[-1]は配列の一番最後の要素 my $last = $array1[-1]; print $last,"\n"; #出力結果 => s print "\n"; #配列を前(最初)から数えるときは0から。後ろ(最後)から数えるときは-1から。 print "$array[0]\n"; #出力結果 => 31 print "$array[-4]\n"; #出力結果 => 31 print "\n"; #「$#配列名」を使用。配列の最後の要素の添え字を知りたい(何個の要素があるか知りたい)とき。 print "$#array\n"; #出力結果 => 3 =>つまり、@arrayは[0]から[3]の4つの要素がある。 print $array[$#array],"\n"; #出力結果 => 9786 =>@arrayの一番最後の要素@array[3]の中身が返る。 my @array2; #@array2は空要素 print scalar(@array2),"\n"; #出力結果 => 0 =>空要素。配列の要素数は0個。 print $#array2,"\n"; #出力結果 => -1 =>空要素。配列の一番最後の添え字は-1(つまり@array2[0]のこと) print $array2[$#array2],"\n"; #出力結果 => エラー =>空要素だから、中身の表示はできない。 print "scalar(@array2)\n"; #出力結果 => scalar() =>()の中は変数展開している。関数はその機能が発揮されてない。
まとめは以下。
・スカラーに配列を代入すると、要素の数が返る。 ・「$#配列名」で配列の最後の添え字が返る。 ・配列は、前から数えると0から。後ろから数えると-1から。 ・""で関数を囲んでもただの文字列。
当然といえば当然の結果を得ているだけだけど、自分でいろいろ実験してみるのが本当におもしろい。