我有一個Perl腳本,它在臨時目錄$tempdir
中生成pdf $pdffile
並使用xdg-open
將其打開。一旦用戶查看文件,該腳本應該刪除工作目錄。下面是我遇到的麻煩的部分代碼:Perl:在繼續之前等待xdg-open退出
system "xdg-open $pdffile";
remove_tree($tempdir);
我的system
理解是,它應該等到繼續程序之前的命令返回。但是,當我執行此代碼時,我收到消息「無法打開/tmp/diff14969/diffs.pdf」。如果我在system
命令中將xdg-open
替換爲okular
(這是我的系統默認值),它將按我的需要工作。 (同樣,如果我硬編碼生活在我的系統上的任何PDF查看器,它的工作原理,但我不想這樣做的便攜性的原因。)
我的猜測是xdg-open
啓動一個新的過程中的查看器, system
命令僅等待xdg-open
完成。一旦xdg-open
成功返回,腳本將在查看器打開文件之前刪除臨時目錄。我怎樣才能讓腳本等待實際查看器完成呢?