gpt4 book ai didi

perl - BEGIN block 中的变量声明

转载 作者:行者123 更新时间:2023-12-04 03:16:34 25 4
gpt4 key购买 nike

在如下脚本中,是否可以不删除'my'来有效地声明'var'一次并使它在BEGIN块之外可见?

echo -e "\n\n\n" | \
perl -lne 'BEGIN { my $var="declared & initialized once" } print $var'

另外,为什么在不带'my'的情况下声明var使其在BEGIN块之外可见?

最佳答案

my $var;块之前放置一个BEGIN:

$ perl -le 'my $var; BEGIN { $var = "declared"; } print $var;'
declared
my给出了可变的词法作用域,因此在 $var块之外的示例中未定义 BEGIN。有效地删除 my使其成为一个全局变量,分配后可在整个脚本中对其进行访问。

关于perl - BEGIN block 中的变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9316157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com