加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Perl中,如何在print语句中使用plus运算符进行算术计算?

发布时间:2020-12-16 06:09:26 所属栏目:大数据 来源:网络整理
导读:我有以下小型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: 21: 11: 61: 31: 22 1 6 3
我有以下小型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:”或“输入数字3:”,e.t.c.,我得到“1:”.我没想到这是诚实的,因为我知道运算符在Perl中已经被重载用于字符串连接.我该如何解决这个问题?它的原因是什么?

解决方法

没有超载.这是一个优先问题.表达式被解析为

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

哪个是一样的

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

您可以使用

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

了解Perl如何解析脚本.

添加括号可以解决问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读