$pdffile
我有一个 Perl 脚本,它在临时目录中生成一个 pdf$tempdir
并使用xdg-open
. 用户查看完文件后,该脚本应删除工作目录。这是我遇到问题的代码部分:
system "xdg-open $pdffile";
remove_tree($tempdir);
我的理解system
是它应该等到命令返回后再继续程序。但是,当我执行此代码时,我收到一条消息“无法打开 /tmp/diff14969/diffs.pdf”。如果我在命令中替换xdg-open
为okular
(这是我的系统默认值)system
,它会按我的意愿工作。(同样,如果我对系统上的任何 pdf 查看器进行硬编码,它就可以工作,但出于可移植性的原因,我不想这样做。)
我的猜测是,这xdg-open
是在一个新进程中启动查看器,并且该system
命令只等待xdg-open
完成。成功返回后,脚本会在查看器打开xdg-open
文件之前删除临时目录。我怎样才能让脚本等待实际的观众完成呢?