perl - 如何检查 Perl 标量变量是否已初始化?

标签 perl

以下是检查标量变量是否在 Perl 中使用 define 进行初始化的最佳方法吗?

my $var;

if (cond) {
    $var = "string1";
}

# Is this the correct way?
if (defined $var) {
    ...
}

最佳答案

Perl 没有提供检查变量是否已初始化的方法。

但是,未使用某个值显式初始化的标量变量在默认情况下恰好具有 undef 值。您认为 define 是检查变量是否具有 undef 值的正确方法,这是正确的。

还有其他几种方法。如果您想分配给 undef 变量(您的示例代码似乎表明了这一点),您可以使用 perl 的定义或运算符:

$var //= 'a default value';

关于perl - 如何检查 Perl 标量变量是否已初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3738836/

相关文章:

perl - 如何在 Perl 中打开二进制文件,仅更改第一个字节,然后将其写回?

perl - 从Perl中的字符串中提取最后K个字符

perl - 在 Perl 中取消引用数组键

perl - 如何循环多个文件,保留基本名称以供进一步处理?

perl - 如何用大写字母替换特定字符?

perl - 在 Perl 中打印 UTF8?

perl - 为什么 Perl 在退出前不打印最后一个文本?

perl - 使用哈希或数组元素时如何绕过魔术钩子(Hook)

perl - 如何模拟 Moose 对象?

python - 计算原子坐标之间的距离