# Does not work; after this line, defined( $x ) == false
# my $x = defined( $$_ ) ? $$_ : "4321" for \$ENV{ASDF}
my $x;
# works fine
$x = defined( $$_ ) ? $$_ : "4321" for \$ENV{ASDF}
想法是:为$x
提供默认值。
问题是:为什么必须以这种方式预先宣布$x
?
答案 0 :(得分:3)
结尾for
被翻译成:
for( \$ENV{ASDF} ) {
my $x = defined( $$_ ) ? $$_ : "4321";
}
从而建立$x
的词汇范围。
答案 1 :(得分:2)