• ベストアンサー

配列の中から文字列を探し、その番号を返す

ある配列の中から、'Address' という文字列を探し、 もし見つかれば、その配列の何番目に格納されている か値を返してくれる関数はないでしょうか。 例えば、  @test[0] = 'No';  @test[1] = 'Name';  @test[2] = 'Point';  @test[3] = 'Address';  とあった場合、かえってくる値が 3 という具合  です。

質問者が選んだベストアンサー

  • ベストアンサー
  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.1

関数にはないんじゃないかな~。 CPANを探せば、モジュールのなかには、有るだろうけれど、 一般的ではないので、逆に分かりにくくなると思う。 ======================================== print &search('Address', @test); sub search($key_, @array_) { my $key_ = shift; my $i = -1; map { ++$i; return $i if /^$key_$/; } @_; } ======================================== 以上みたいな関数で良いのでは?

naru
質問者

お礼

ありがとうございます。 このまま貼って使えました。感激です。 こういうのがサラッと書ける方が羨ましいです。 手持ちポイントが 20pt しかないのが残念で仕方 ありません。 心より感謝です。