【问题标题】:How to open xlsx file withough hanging a perl process如何在不挂起 perl 进程的情况下打开 xlsx 文件
【发布时间】:2016-11-23 18:17:35
【问题描述】:

我正在尝试使用以下命令在 Perl 脚本中打开 xlsx 文件: system("path_to_file\\file.xlsx");
该文件已打开,但它保持 perl 进程挂起,直到我关闭 .xlsx 文件。我怎样才能避免这种情况?

文件file.xlsx 是在perl 脚本中创建的。在执行结束时,我希望它显示给用户(就像您手动打开它一样)并且它可以工作,但它会保持 perl 进程挂起,直到我关闭它。

【问题讨论】:

  • system(1, $file) 将运行命令并立即返回,而无需等待子进程完成。
  • 好的,我明白了。不过,system 执行命令,而您的示例“运行”一个 Excel 文件!我很惊讶它的工作原理。你想运行一个显示文件的应用程序,比如office等。 (希望是更轻松的东西。)所以你想以 非阻塞 的方式来做。请参阅 tanktalus 对于 Windows 的评论。
  • @zdim:Windows 使用文件类型来确定使用什么程序来打开它。因此,在命令行中输入 .xlsx 文件的名称将导致使用 Excel 打开它,就像输入 main.pl 会导致使用 perl.exe 打开和运行文件一样。
  • @Tanktalus:重要的是说这只能在 Windows 上运行。
  • @zdim:大多数情况下,您会想要对文件做一些有用的事情。您可以使用Win32::OLE 打开和控制相应的应用程序,或者在某些情况下,例如这个,有逆向工程库可以让您在不使用应用程序的情况下做很多事情。

标签: windows perl


【解决方案1】:

在 Windows 上,system(1, $cmd) 将运行命令并立即返回,而无需等待子进程完成。见perlport

在 Unix 上,forkexec 将为此工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-09
    • 2010-11-04
    • 1970-01-01
    • 2015-08-08
    • 2014-11-06
    • 2017-07-18
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多