#!usr/bin/perl
use strict;
my @var=qw/ boke nasu aho kasu unnko baaaaa /;
my $result = &which_element_is("aho",@var);
sub which_element_is {
my($what,@array)=@_;
foreach (0..$#array){
if($what eq $array[$_]){
return $_;
}
}
}
print"$result\n";
結果は
2
まず$whatが@arrayの中から値を探して、@arrayは@varのコピーになっていて、@arrayのインデクスを順に繰り返しを行う
そして$whatが@arrayのインデクスの要素を一つ一つ等しいかをチェックそて、仮に等しければ即座にreturnで返す。
だから ahoがチェックされたので、もう残りは実行せずに値を即座に返すわけですね。
仮に$whatと等しい要素が見つからない場合はundefを返す もしくは -1と書く
でもundefで返した方がなんかいいかな 次はアンパーサンド