gpt4 book ai didi

perl - 如何检查变量是否在perl中声明?

转载 作者:行者123 更新时间:2023-12-04 04:48:05 24 4
gpt4 key购买 nike

我正在使用 use strict;在 perl 中,我使用以下语句。

unless(defined($x)){
print "Not defined";
}

$x 未在任何地方声明的地方。所以我希望它打印“ Not defined ”但它返回一个错误
Global symbol "$x" requires explicit package name at *********** in line 15.

最佳答案

strict pragma由三部分组成:严格引用、严格变量和严格子项。你遇到的那个是

strict vars

This generates a compile-time error if you access a variable that wasn't declared via our or use vars, localized via my, or wasn't fully qualified. Because this is to avoid variable suicide problems and subtle dynamic scoping issues, a merely local variable isn't good enough.



因为它会生成编译时错误,所以您的非 BEGIN代码甚至没有机会运行。您可以在块中临时允许非严格变量,如
{
no strict 'vars';
print "Not defined!\n" unless defined $x;
}

但请注意 Perl 的 defined运算符告诉您是否定义了值,而不是是否已声明变量。

告诉我们更多关于您的申请的信息,我们可以为您提供更好的处理建议。

关于perl - 如何检查变量是否在perl中声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3537363/

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