簡體   English   中英

我應該如何在Perl中使用“my”關鍵字?

[英]How should I use the “my” keyword in Perl?

我一直在網上看到Perl腳本中的變量名前面的“my”關鍵字,但我不知道這意味着什么。 我嘗試在線閱讀手冊頁和其他網站,但鑒於我看到它與手冊之間的區別,我很難辨別它是什么。

例如,它用於獲取此帖子中數組的長度: 在Perl中查找數組的大小

但手冊說:

我聲明列出的變量是封閉的塊,文件或eval的本地(詞法)。 如果列出了多個值,則列表必須放在括號中。

它做什么以及如何使用?

my限制變量的范圍 變量的范圍是可以看到的。 將變量的范圍縮小到需要變量的位置是良好編程的基本方面。 它使代碼更易讀,更不容易出錯,並帶來一系列派生的好處。

如果不使用my聲明變量,則會創建一個全局變量。 這是應該避免的。 使用use strict; 告訴Perl你想要阻止隱式創建全局變量,這就是為什么你應該總是使用use strict; (並use warnings; )在您的程序中。


相關閱讀: 為什么use strict; use warnings;

快速摘要: my創建了一個新變量, local暫時修改變量的值

在下面的示例中,$ :: a在“全局”命名空間中引用$ a。

$a = 3.14159;
{
  my $a = 3;
  print "In block, \$a = $a\n";
  print "In block, \$::a = $::a\n";
}
print "Outside block, \$a = $a\n";
print "Outside block, \$::a = $::a\n";

# This outputs
In block, $a = 3
In block, $::a = 3.14159
Outside block, $a = 3.14159
Outside block, $::a = 3.14159

即, local臨時更改變量的值,但僅在其存在的范圍內。

資料來源: http//www.perlmonks.org/? node_id = 94007

更新

關於ourmy之間our區別請看

(感謝ThisSuitIsBlackNot )。

通過我的私有變量()是的主要文檔my

在您提到的數組大小示例中,它不用於查找數組的大小。 它用於創建一個新變量來保存數組的大小。

暫無
暫無

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

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