gpt4 book ai didi

perl - 在 Perl 中, "if defined $count"和 "if $count"之间有什么区别?

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

我有以下脚本:

#!/usr/bin/perl
use warnings;
use strict;

my $count = 0;
my ( @first , @second , @third );

while ($count <= 7){

push ( @first , $count);
push ( @second , $count) if defined $count;
push ( @third , $count) if $count;
$count++;

}

print "first: @first\n";
print "second: @second\n";
print "third: @third\n";

这会产生以下输出:
first: 0 1 2 3 4 5 6 7
second: 0 1 2 3 4 5 6 7
third: 1 2 3 4 5 6 7

if defined $count有什么区别对比 if $count ,除了后一种方法不会将零添加到数组中?我搜索了 perldocs,但找不到答案。

最佳答案

Truth and Falsehood in perlsyn解释在 bool 上下文中哪些值被认为是错误的:

The number 0, the strings '0' and '', the empty list (), and undef are all false in a boolean context. All other values are true.


undef是从未初始化(或已使用 undef function 重置)的变量的值。 defined function如果表达式的值不是 undef,则返回 true .
if $count如果 $count 则为假是数字 0,字符串 '0' , 空字符串, undef ,或已被 overloaded 的对象在 bool 上下文中使用时返回这些东西之一。否则,这是真的。 (空列表不能存储在标量变量中。)
if defined $count仅当 $count 时为假是 undef .

关于perl - 在 Perl 中, "if defined $count"和 "if $count"之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3903420/

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