簡體   English   中英

在Perl中解引用數組

[英]Dereferencing an array in Perl

考慮:

sub binary_search {
   my ($array, $word) = @_;
   my ($low, $high) = (0, @$array -1);
}

我正在讀一本書,該書提供的@$array的解釋是,它正在解引用標量變量$array來獲得其下的數組。

我對此說法有些困惑。 我知道$是Perl中的標量變量,@是數組變量。

  1. 為什么不是my (@array, $word) = @_;
  2. 怎么會有$數組的數組(不是$標?),它可通過達到@$array

該函數希望將對數組而不是數組的引用作為第一個參數。 有關數組引用的信息,請參見perlreftut 如果您嘗試評估:

my (@array, $word) = @_;

@array將吞噬所有輸入,而$word將保持未定義狀態。

該方法可以寫成期望有一個單詞然后是一個數組,在這種情況下,您可以執行以下操作:

my ($word, @array) = @_;

但這不是你所擁有的。

請注意,當您在實際參數列表中調用帶有數組的函數時,Perl所做的就是對數組的元素進行插值,就好像它們是函數的單獨參數一樣。 它不會將數組作為單個對象傳遞。 有關詳細信息,請參見perlsub文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM