[英]Dereferencing an array in Perl
考慮:
sub binary_search {
my ($array, $word) = @_;
my ($low, $high) = (0, @$array -1);
}
我正在讀一本書,該書提供的@$array
的解釋是,它正在解引用標量變量$array
來獲得其下的數組。
我對此說法有些困惑。 我知道$是Perl中的標量變量,@是數組變量。
my (@array, $word) = @_;
? $
標?),它可通過達到@$array
? 該函數希望將對數組而不是數組的引用作為第一個參數。 有關數組引用的信息,請參見perlreftut 。 如果您嘗試評估:
my (@array, $word) = @_;
@array
將吞噬所有輸入,而$word
將保持未定義狀態。
該方法可以寫成期望有一個單詞然后是一個數組,在這種情況下,您可以執行以下操作:
my ($word, @array) = @_;
但這不是你所擁有的。
請注意,當您在實際參數列表中調用帶有數組的函數時,Perl所做的就是對數組的元素進行插值,就好像它們是函數的單獨參數一樣。 它不會將數組作為單個對象傳遞。 有關詳細信息,請參見perlsub文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.