【发布时间】:2013-07-26 23:04:01
【问题描述】:
输入
fish \t 1 \t red
fish \t 2 \t blue
fish \t 4 \t green
dog \t 1 \t blue
dog \t 3 \t yellow
cat \t 3 \t orange
输出:
fish \t red \t blue \t _______ \t green
dog \t blue \t ____ \t yellow
cat \t ____ \t ____ \t orange
我希望生成一个数组,同时保持输入文件中第 2 列给出的顺序。 在这个例子中,由于没有第 2 列 = 3 的行,我希望用 " " 推送。
我正在使用的实际文件最多有 98 个位置可以填充一个数组。
Perl 专家有什么建议吗?
谢谢!
【问题讨论】:
-
我最终在 perl 中找到了解决方案:
#!/usr/bin/perl open DOC, $filename while ($line =) { @columns = split(' \s', $线); if ($columns[0] ne $animal) { &PRINT(); &重置(); } $color[100] = (undef); $color[$columns[1]-1] = $columns[2]; } &打印(); } 关闭文档;退出;