2012年01月11日

リファレンスされた配列の最後の添え字の取得

 ちょっとググり方が悪かったのか、すでに常識なのかはわからないけど、試行錯誤して解決したのでメモ。

 Perlにおいて配列の最後の添え字(番号)を取得するには、$#配列名(例:$#array)であることは基本中の基本です。
 では、リファレンスに入っている配列の最終番号を取得するにはどうしたらいいのか。

解法1:scalar関数を使う
my $lastnum = scalar(@$ref_array) -1;

解法2:$#でがんばる
my $lastnum = $#{$ref_array};


解法2の方がわかりやすいというかシンプルというか好み。
(区切りに{}が使えることを知らんかったよ・・・)

ちなみにこんな複雑なことも可能
my $lastnum = $#{$hash{'list'}};
# %hashの'list'の値に配列へのリファレンスが入っている場合
posted by 鯖缶 at 19:03 | Comment(0) | TrackBack(0) | ただいま開発中 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/245576081

この記事へのトラックバック