根据perldoc 中提供的解决方案,我正在尝试模拟tail -f
,但它没有按预期工作。下面的代码可以第一次打印所有行,但不能打印新添加的行。如果我在这里遗漏任何东西,请您详细说明。
#!/usr/bin/perl
open (LOGFILE, "aa") or die "could not open file reason $! \n";
for (;;)
{
seek(LOGFILE,0,1); ### clear OF condition
for ($curpos = tell(LOGFILE); <LOGFILE>; $curpos = tell(LOGFILE))
{
print "$_ \n";
}
sleep 1;
seek(LOGFILE,$curpos,0); ### Setting cursor at the EOF
}