我有一个包含以下数据的文件:
1==0==2 5==3==2 7==1==0
如何逐列添加数值.我需要总结和打印它
1==0==2 5==3==2 7==1==0 13==4==4 * summation column wise (This is what I want to calculate using perl)
我想你误解了我的问题.我已经再次编辑了我的问题...我的意思是我在表格中有很多这样的列13 == 4 == 4是我希望添加到我的文件中的总和列.
我能够只为第一列做到这一点,但我还需要学习如何为所有其他列.我的代码:
#!/usr/bin/perl
use strict;
use warnings;
open (TEMPTABLE,"temp_data") or die "Cannot open file\n";
my @temp_table_data=< TEMPTABLE > ;
chomp @temp_table_data;
my $total_sum;
for(my $i=0;$i<=$#temp_table_data;$i++)
{
print "$temp_table_data[$i]\n";
my @col=split('==',$temp_table_data[$i]);
for(my $m=0;$m<1;$m++)
{
$total_sum+=$col[$m];
}
}
print "$total_sum\n";
OUTPUT:
1==0==2
5==3==2
7==1==0
13
Run Code Online (Sandbox Code Playgroud)
我不想总结ROW而是COLUMN.
人们试图在他们的答案中非常聪明.我认为没有技巧的情况会更清楚.你当然不需要pairwise,我认为在这种情况下它会使代码更难以遵循.只需内置Perl即可:
my @sums;
while( <DATA> ) {
my @summands = split /==/;
foreach my $i ( 0 .. $#summands ) {
$sums[$i] += $summands[$i];
}
}
print "Sums are (@sums)\n";
__END__
1==0==2
5==3==2
7==1==0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5920 次 |
| 最近记录: |