Re: [問題] 請問傳array到sub的問題
※ 引述《ppkliu (ppkliu)》之銘言:
: 我寫了如下的程式,想將一個array傳到sub當中
: 可是一直出現這樣的error message
: Can't coerce array into hash at XX.pl at line 49
: sub Findfun #find call function in proc
: {
: my $i; #array index
: my $gotthis; #got 'call' in this proc
: my $inproc; #got procedure name
: my ($array_ref,$Fname1) = @_; #pass array reference
: $gotthis=0;
: $inproc=0;
: foreach (@$array_ref)#@CRT2ASM)
: {
: #這樣不是等同使用 $array[$i]
: if($array_ref->{$i} =~ /$Fname1.*proc.*near/s) #->{$i}
: {$gotthis++; $inproc++;
: print "In CRT2.ASM \n";
: print "$i $CRT2ASM[$i]\n";
: } #Fname proc near
: elsif(($inproc==1)&&($array_ref->{$i} =~ /.*call/))
: {print "$i $CRT2ASM[$i]\n"; }
: elsif($array_ref->{$i} =~ /$Fname1.*endp/s)
: {$inproc=0;print "$i $CRT2ASM[$i]\n";} #Fname endp
: $i++;
: }
: }
: &Findfun(\@CRT2ASM,$Fname);
$array_ref->{$i} # 是hash refrence的取值方式
$array_ref->[$i] # 是array refrence的取值方式
你傳的是array reference,所以應採用後者
不過,如果可以在subroutine裡用$CRT2ASM[$i]
那傳array reference到subroutine裡好像沒意義?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.110.61
推
07/10 19:40, , 1F
07/10 19:40, 1F
→
07/10 22:34, , 2F
07/10 22:34, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):