我有以下代码:
#!/usr/bin/perl
# splits.pl
use strict;
use warnings;
use diagnostics;
my $pivotfile = "myPath/Internal_Splits_Pivot.txt";
open PIVOTFILE, $pivotfile or die $!;
while (<PIVOTFILE>) { # loop through each line in file
next if ($. == 1); # skip first line (contains business segment code)
next if ($. == 2); # skip second line (contains transaction amount text)
my @fields = split('\t',$_); # split fields for line into an array
print scalar(grep $_, @fields), "\n";
}
鉴于文本文件中的数据是这样的:
4 G I M N U X
Transaction Amount Transaction Amount Transaction Amount Transaction Amount Transaction Amount Transaction Amount Transaction Amount
0000-13-I21 600
0001-8V-034BLA 2,172 2,172
0001-8V-191GYG 13,125 4,375
0001-9W-GH5B2A -2,967.09 2,967.09 25.00
我希望 perl 脚本的输出是:2 3 3 4
给定每行中定义的元素的数量。该文件是一个制表符分隔的文本文件,有 8 列。
相反,我得到3 4 3 4
了,我不知道为什么!
作为背景,我在 Perl 中使用 Counting array elements作为我开发的基础,因为我试图计算行中的元素数量以了解是否需要跳过该行。