perl - 为什么我的用于打印行号前缀的行的 Perl 脚本不起作用?

标签 perl file-io

我打算打开一个文本文件并读取行。并在其前面添加带有行号的字母“pp”。

文本文件如下。

39828513 39829926 1413 hsa-mir-6719
41252946 41254434 1488 hsa-mir-6889
62331112 62332604 1492 hsa-mir-4758

And I want to have the output as follows:

pp1 39828513 39829926 1413 hsa-mir-6719
pp2 41252946 41254434 1488 hsa-mir-6889
pp3 62331112 62332604 1492 hsa-mir-4758

I have written a code but I don't feel its working fine.

use strict;
use warnings;
open (fh, " < file.txt") || die ;
while ($line=<fh>)
{
 chomp ($line);
    for (my $i=1; $i <= ($#line); $i++)
    {
    print "pp$i\t$line";
    }
}

最佳答案

利用 $. 变量:

print "pp$. $_" while <>;

关于perl - 为什么我的用于打印行号前缀的行的 Perl 脚本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28628032/

相关文章:

MySQL写入文本文件

perl - Postgresql::抽象 "Not In Range"操作

linux - 如何检测脚本是否在虚拟机上运行?

c++ - 在 OpenCV 中读取嵌套的 XML

python - 文件输入输出python保存文件

java - java.io.IOException : Underlying input stream returned zero bytes 的原因是什么

Perlcritic - 两个参数 "open"错误

windows - 为什么我在 Perl 中打开的管道中的 * 在 Windows 上不起作用?

perl - 使用 List::MoreUtils::firstidx 的问题

c++ - 保持从一个函数到另一个函数的流打开