我想从另一列中减去一列中的值并添加差异。如何在 perl 中执行此操作?我是 perl 的新手。因此我无法弄清楚如何去做。请帮助我。
			
			1168 次
		
2 回答
            3        
        
		
第一件事是将数据分成列。在这种情况下,列由空格分隔。  split(/ /)将返回列的列表。
要从另一个中减去一个,它将值从列表中拉出并减去它们。
最后,将差值添加到运行总和,然后循环数据。
#!/usr/bin/perl
use strict;
my $sum = 0;
while(<DATA>) {
    my @vals = split(/ /);
    my $diff = $vals[1] - $vals[0];
    $sum += $diff;
}
print $sum,"\n";
__DATA__
1 3
3 5
5 7
这将打印出6--- (3 - 1) + (5 - 3) + (7 - 5)
于 2013-10-26T23:41:41.520   回答
    
    
            2        
        
		
仅供参考,如果您结合自动拆分 ( -a)、循环 ( n) 和命令行程序 ( -e) 参数(请参阅perlrun),您可以将其缩短为单行,就像awk:
perl -ane "$sum += $F[1] - $F[0]; END { print $sum }" filename
于 2013-10-27T00:28:50.127   回答