我正在尝试使用seek
使用以下代码“倒回”到文件的开头:
#! /usr/bin/perl
use strict;
use warnings;
my $infile = $ARGV[0];
open (FH, "<$infile");
while(<FH>) {
chomp;
print $_,"\n";
}
print "one time","\n";
seek FH, 0, 0;
while(<FH>) {
chomp;
print $_,"\n";
}
我的输入文件如下所示:
A A A A A A A
B B B B B B B
我使用以下命令运行我的程序:
cat file | perl script.pl /dev/stdin
但没有得到我的预期输出:
A A A A A A A
B B B B B B B
one time
A A A A A A A
B B B B B B B
I get:
A A A A A A A
B B B B B B B
one time
Why?
管道不可寻找,
seq 5 | perl -Mautodie -pe 'seek ARGV,0,0 if eof'
gives Can't seek('ARGV', '0', '0'): Illegal seek at -e line 1
,但如果是文件,它会按预期工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)