use warnings;
use strict;
my @a = qw(1 2 3 4 'c');
my @b = qw(5 6 7 8);
my $i;
for ($i=0; $i < scalar @a; $i++)
{
my $ax = $a[$i] + $b[$i];
print "$ax\n";
}
如何在使用c
函数时打印字符串变量add
。
# I expect output
6
8
10
12
c
答案 0 :(得分:2)
在其他语言中,例如Javascript,在某种程度上,在Python中,+
同时进行数字加法和字符串连接。
但不是在Perl。
在Perl中,字符串连接使用.
完成,数字加法使用+
这就是为什么这个脚本会产生“不是数字”的警告。
“使用未初始化的值”警告来自超出@b数组的末尾。
这些是警告。执行没有停止。请注意,脚本决定“c”等于0,undefined等于0,并在最后一行添加0。
6
8
10
12
Use of uninitialized value in addition (+) at test.pl line 8.
Argument "'c'" isn't numeric in addition (+) at test.pl line 8.
0
可以在自定义类中重载'+',并且可以编写一个自定义类,添加与数字正则表达式匹配的标量符号+和其他标题符号。但修改核心功能将是不寻常的。无论如何,这些技术超出了这个答案的范围。