1

我有一个 sql 查询的结果。它返回大约 10 行,如下所示:

如果我在我的 perl 脚本中执行以下操作。

print $result

它给了我输出:

 key       value                            
 ----------- ------------------------------ 
  1428116300 0003000                        
   560779655 0003001                        
   173413463 0003002                        
      315642 0003003                        
  1164414857 0003004                        
   429589116 0003005 

我只想删除前两行。并将每一行的其余部分存储在一个数组中。任何人都可以告诉我如何实现这一目标吗?

4

2 回答 2

2

有类似的东西:

my @lines = split /\n/, $result;
splice @lines,0,2;

说明:

split /\n/, $result正在将您的变量切割成一系列行。

grep /^[\s\d]+$/正在过滤这个数组,并且只保留单行空格或数字的元素(从而删除前两行)

于 2012-09-21T07:08:09.423 回答
0

数据无关的小迂回方式:如果你在文件中打印 $result,你可以

use Tie::File;

tie @lines, Tie::File, $file or die "can't update $file: $!";
delete $lines[1];
delete $lines[2];

(未经测试)

于 2012-09-21T07:12:53.193 回答