有些东西没有打印
我想知道没有打印“00”的原因:
my @compass_points = ('north', 'east', 'south', 'west');
my $direction = 'north-east';
unshift @compass_points, $direction;
# @compass_points contains: north-east, north, east, south and west
print ($west = pop @compass_points)."00";
print "11";
push @compass_points, $new_direction; # put $west back
print @compass_points;
回答
有了警告,Perl 会告诉你的。
它将后面的括号解释print为围绕它的参数,因此00附加到 的返回值print并丢弃,因为打印出现在 void 上下文中。
要么将所有参数包装成一对新的括号
print(($west = pop @compass_points) . '00');
或用于+告诉解析器括号引入一个表达式:
print +($west = pop @compass_points) . '00';
您还可以利用带有多个参数的打印功能:
print $west = pop @compass_points, '00';