我正在尝试在Perl
Windows中构建一个快速自动更新程序.我注意到当我调用cpanp来安装软件包的更新时,由于脚本当前正在运行,因此无法安装新版本的脚本.我现在用CORE :: system()调用cpanp.如果我用exec()调用cpanp会释放可替换的可执行文件吗?或者,即使执行已完全转移到cpanp,Windows是否仍保持捆绑?
目前,我的流程看起来像这样,
>从服务器下载META.yml
>解析出Meta.yml的版本
>与当前的$VERSION进行比较
>如果当前版本较低,请使用Meta.yml中的数据生成版本字符串
>使用Meta.yml的主机/路径和版本/数据信息生成要打包的URL
>通知用户更新
> Spawn cpanp用URL运行更新.
>如果当前版本相同
>什么都不做
在更换可执行文件时,system()在Win32上的行为会不同于exec()吗?在Linux上它按设计工作.
我刚试过它. exec在Linux和Win32上都能正常工作.
See this page for portability info on Perl.