【发布时间】:2016-07-10 06:16:43
【问题描述】:
我写了一个脚本来提取这两列;第一列是用户在参数中输入的列,第二列是第一列的下一列;现在我必须单独执行列的添加。
请注意,该文件是 CSV 文件,并以字符串作为列标题
#!/usr/bin/perl
use warnings;
use strict;
my $file = $ARGV[0];
my $coloumn_number = $ARGV[1];
my $addition = 0;
my $sum = 0;
open(my $filedata, '<', $file) or die "Can't read file '$file'\n";
while (my $line = <$filedata>) {
chomp $line;
my @fields = split(",", $line);
print "$fields[$coloumn_number],";
print "$fields[$coloumn_number+1]\n";
$sum += $fields[$coloumn_number];
$addition += $fields[coloumn_number+1];
}
print "$sum";
print "$addition";
当我运行这个脚本时,我得到了错误
-bash-4.1$ ./script1.pl /diff2.csv 2
Bareword "coloumn_number" not allowed while "strict subs" in use at ./script1.pl line 17.
Execution of ./script1.pl aborted due to compilation errors.
当我在没有最后 5 行添加部分的情况下运行脚本时,它可以正常工作。
【问题讨论】: