▽2
●
''''"/><input =" ●200ポイント ベストアンサー |
use strict;
use warnings;
use 5.010000;
use List::MoreUtils 'first_index';
my @train = qw(local rapid express);
say first_index { $_ eq 'local' } @train;
say first_index { $_ eq 'express' } @train;
ここに、いくつか例があります。
How do I find the index of a specific array value?
一番シンプルなのは、最初にあるこれかなぁ。
my @array = qw( your array here ); my $search_for = "here"; my( $index )= grep { $array[$_] eq $search_for } 0..$#array;
範囲演算子を使うところがミソですね。あと、grep の戻り値はリストなので、受ける変数を
my @indexes = grep { $array[$_] eq $search_for } 0..$#array;
とするだけで、該当した要素の、全てのインデックス番号を取得出来ます。
何れにしても、ruby の index メソッドのような、「これを呼び出せば一発で」という物は無いと思います。
たぶんないんじゃないのかなぁ。下の表を見てみましたが、空欄でした。(^_^;
●配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ - bkブログ
http://0xcc.net/blog/archives/000043.html
ちなみに、上様二つの合わせ技ですが、…。(^_^;
my @train = qw(local rapid express); print my( $index )= grep { $train[$_] eq "local" } 0..$#train; print "\n"; my( $index )= grep { $train[$_] eq "express" } 0..$#train; print "$index \n";