首页 > 解决方案 > 有些东西没有打印

问题描述

我想知道没有打印“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

解决方案


如果有警告,Perl 会告诉你的。

它将后面的括号解释print为围绕它的参数,因此将00附加到返回值print并丢弃,因为打印出现在 void 上下文中。

将所有参数包装到一对新的括号中

print(($west = pop @compass_points) . '00');

或用于+告诉解析器括号引入了一个表达式:

print +($west = pop @compass_points) . '00';

您还可以利用 print 采用几个参数:

print $west = pop @compass_points, '00';

推荐阅读