$pdffile
一時ディレクトリにpdf を生成し、.xml$tempdir
を使用して開くPerl スクリプトがありますxdg-open
。ユーザーがファイルを見終わったら、スクリプトは作業ディレクトリを削除する必要があります。私が問題を抱えているコードの部分は次のとおりです。
system "xdg-open $pdffile";
remove_tree($tempdir);
私の理解でsystem
は、プログラムを続行する前に、コマンドが戻るまで待つ必要があります。ただし、このコードを実行すると、「/tmp/diff14969/diffs.pdf を開けませんでした」というメッセージが表示されます。コマンドで(システムのデフォルトです)に置き換えるxdg-open
と、希望どおりに機能します。(同様に、私のシステムにある pdf ビューアをハードコードしても機能しますが、移植性の理由からそうしたくありません。)okular
system
私の推測ではxdg-open
、ビューアーを新しいプロセスで開始しており、system
コマンドはxdg-open
終了するまで待機しているだけです。xdg-open
正常に戻ると、ビューアがファイルを開く前に、スクリプトによって一時ディレクトリが削除されます。代わりに、実際のビューアが終了するまでスクリプトを待機させるにはどうすればよいですか?