如何使用带有附加功能的foreach打印字符串?在perl

时间:2014-06-05 08:35:20

标签: perl

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 

1 个答案:

答案 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

可以在自定义类中重载'+',并且可以编写一个自定义类,添加与数字正则表达式匹配的标量符号+和其他标题符号。但修改核心功能将是不寻常的。无论如何,这些技术超出了这个答案的范围。