【发布时间】:2014-08-18 00:13:16
【问题描述】:
我有一个 tsv 文件,其中包含两列(称为 TG 和 ESP),它们具有数值或为空。 我想过滤文件,只保留值小于 1 或没有值的行。我写了以下while循环:
while (<FILE>) {
my $line = $_;
chomp $line;
my @c = split('\t', $line);
my $TG = $c[34];
if ( $TG !~ /\s/ || $TG > 1 ) { next; }
my $ESP = $c[39];
if ( $ESP !~ /\s/ || $ESP > 1 ) { next; }
print "$line\n";
出于某种原因,这些 if 语句导致我的程序跳过文件中的每一行。我希望 if 语句只跳过那些数值大于 1 的行。知道我做错了什么吗?
【问题讨论】:
-
在整个 while 循环中添加一些打印语句作为跟踪,这样您就可以看到程序在做什么以及它为什么做出某些决定。能够跟踪正在运行的程序是编程的关键技能之一。