我在使用 Perl 和处理输入文件时遇到问题。
我成功打开了文件,但是当我尝试将文件的内容打印到屏幕上时,它不会打印任何内容。
如果我在尝试打印到屏幕之前对该文件名执行系统调用 cat 打印到屏幕有效?!
不工作
open( my $ifh, "<", "/data/$client/$product/$stream->{ fname }.SortIndex.dat" )
or die "$product: $file could not open parm file $stream->{ fname }.SortIndex.dat: $1";
while ( <$ifh> ) {
print $_;
}
在职的
open( my $ifh, "<", "/data/$client/$product/$stream->{ fname }.SortIndex.dat" )
or die "$product: $file could not open parm file $stream->{ fname }.SortIndex.dat: $1";
system ( "cat $stream->{ fname }.SortIndex.dat" );
while ( <$ifh> ) {
print $_;
}
它让我感到厌烦,我尝试将句柄放入数组中并打印数组的元素但没有成功。
文件句柄打开时没有错误,它只包含一行,它是一个 Unix 格式的文本文件。
有没有人见过这种行为?
/杨
编辑: print "$stream->{ fname }.SortIndex.dat" 返回 D347INVX.hold_synchk.SortIndex.dat
编辑 :
print Dumper $stream;
$VAR1 = {
'fname' => 'D998INVX.hold_synchk'
};
print "/data/$client/$product/$stream->{ fname }.SortIndex.dat\n";
/data/SYN/SYNINV/D998INVX.hold_synchk.SortIndex.dat
我现在也在同一个文件上执行 cat :
system( "cat /data/$client/$product/$stream->{ fname }.SortIndex.dat" );
以前的行为仍然存在