让我们假设我有这样的事情(原谅坏perl的风格 - 这是别人的Perl的。)调试文件句柄的open()
#!/usr/bin/perl
my $config_dir = '/var/config';
my $status_file = 'last_update.status';
my $host = shift;
chomp($host);
unless ($host) { die "Usage: $0 <hostname>\n"; }
open(STATUS,">$config_dir/$host/$status_file") or die "Could not open $config_dir/$host/$status_file for writing. Aborting...\n";
print STATUS time() . "\n";
close(STATUS);
它是通过命令行调用像这样update_status.pl foo
。
我希望发生什么:/var/config/foo/last_update.status包含当前时间戳。
究竟发生了什么:/var/config/foo/last_update.status包含一个旧的时间戳。
现在,脚本不会死;它成功完成并返回退出代码0到bash。这是一个运行perl 5.10.1的Debian Linux机器。
所以我的问题是:如何检查STATUS
? Data :: Dumper根本没有帮助。
谢谢。
你需要关于文件句柄STATUS的什么信息? – Kenosis
@Kenosis我正在寻找对应于绑定到'STATUS'的文件描述符的路径 –
也许下面的讨论可能会有所帮助:[我能从Perl的文件句柄中找到一个文件名吗?](http:// stackoverflow。 com/questions/2813092/can-i-find-a-filename-from-a-filehandle-in-perl) – Kenosis