【发布时间】:2014-12-04 12:50:41
【问题描述】:
我在 Perl 中有一个函数,它读取文件夹中最后修改的 .csv,并将其值解析为变量。
我发现正则表达式存在一些问题。 我的 .csv 看起来像:
Title is: "NAME_NAME_NAME"
"Period end","Duration","Sample","Corner","Line","PDP OUT TOTAL","PDP OUT OK","PDP OUT NOK","PDP OUT OK Rate"
"04/12/2014 11:00:00","3600","1","GPRS_OUT","ARG - NAME 1","536","536","0","100%"
"04/12/2014 11:00:00","3600","1","GPRS_OUT","USA - NAME 2","1850","1438","412","77.72%"
"04/12/2014 11:00:00","3600","1","GPRS_OUT","AUS - NAME 3","8","6","2","75%"
.(ignore this dot, you will understand later)
到目前为止,我已经通过以下方式帮助将值解析为一些变量:
open my $file, "<", $newest_file
or die qq(Cannot open file "$newest_file" for reading.);
while ( my $line = <$file> ) {
my ($date_time, $duration, $sample, $corner, $country_name, $pdp_in_total, $pdp_in_ok, $pdp_in_not_ok, $pdp_in_ok_rate)
= parse_line ',', 0, $line;
my ($date, $time) = split /\s+/, $date_time;
my ($country, $name) = $country_name =~ m/(.+) - (.*)/;
print "$date, $time, $country, $name, $pdp_in_total, $pdp_in_ok_rate";
}
问题是:
- 我不知道如何使第一行和第二行(即 .csv 中的列名)被忽略;
- 该文件有时在文件末尾带有 2-5 个空行,如我在示例中所示(忽略它末尾的点,它在文件中不存在)。
我该怎么做?
【问题讨论】:
-
您是否尝试使用 Perl 解析 CSV?或者您是否正在尝试使用 Perl 学习正则表达式?
-
其实我两者都做。我需要以一种或另一种方式学习它