我有一个包含打开的文件句柄的多维哈希,SEEK_END目的是始终读取最新的行而不需要太多的I/O(我会得到的tail).
我现在通过for循环遍历所有这些句柄并调用readline它们.
它看起来像这样:
for $outer ( keys %config ) {
my $line = readline($config{$outer}{"filehandle"});
if (not defined $line || $line eq '' ){
next;
}
else{
print "\nLine: -->".$line."<--\n";
$line =~ m/(:)(\d?\.?\d\d?\d?\d?\d?)/;
$wert = $2;
}
}
Run Code Online (Sandbox Code Playgroud)
如果将新内容写入这些文件,我的脚本会读取它并按照计划行事.
问题是,readline通常会返回任何结果,因为目前还没有在文件的结尾,但我if似乎并没有确定的空返readline的undef为空-它只是打印什么,这是因为没有将正确的这个字符串中没有任何内容,但我根本不希望它被处理.