0
考慮下面的代碼片段:訪問嵌套哈希和子程序
#GLOBAL SPACE HERE
{
#NESTED HERE
my %hash = (
key1 => 'A',
key2 => 'B',
key3 => 'C',
key4 => 'D',
);
sub test
{
#subroutine code goes here
}
}
我將如何訪問這兩個散列或從全球範圍內已嵌套在大括號內當子程序?
該變量也是在編譯時聲明的;不同之處在於子程序不在詞彙範圍內。 – ysth
@ysth在運行時執行到達聲明代碼的位置之前,變量不能被訪問。該子例程在運行時的代碼中的所有點都可用,而與範圍無關。 – TLP
重申你的第一點,不:'my $ x; BEGIN {嚴格使用; $ x = 42} print $ x'。關於你的第二點,是的,這就是我所說的你應該說的,而不是「在編譯時聲明」,後者不是問題。 – ysth