gpt4 book ai didi

perl - Perl中,如何在print语句中使用加号运算符进行算术计算?

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

我有以下小型 Perl (v5.10) 程序:

use strict;

my @nums;
my $i = 0;

while ($i < 5) {

print "Enter number " . $i+1 . ": ";
$nums[$i] = <STDIN>;
$i++;
}

foreach (@nums) {

chomp $_;
print "$_\t";
}
print "\n";

这是测试运行的结果:

1: 2
1: 1
1: 6
1: 3
1: 2
2 1 6 3 2

正如您所看到的,问题在于提示用户输入的 print 语句未按预期运行。我只得到“1:”,而不是“输入数字 1:”或“输入数字 3:”等。老实说,我没想到这会起作用,因为我知道 + 运算符在 Perl 中的字符串连接中已被重载。我该如何解决这个问题?其原因何在?

最佳答案

+ 未重载。这是一个优先级问题。表达式被解析为

print(((('Enter number ' . $i) + 1) . ': '));

与以下内容相同

print((0 + 1) . ': ');

你可以使用

perl -MO=Deparse,-p -e 'print "Enter number " . $i+1 . ": ";'

看看 Perl 如何解析你的脚本。

添加括号可以解决问题。

关于perl - Perl中,如何在print语句中使用加号运算符进行算术计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764715/

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