讓我們假設我有這樣的事情(原諒壞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