Win32::Daemon模块是CRONw - CRON for Windows的依赖模块,CRONw is a small collection of Perlie things providing the main functions of a *nix-style CRON to the Perl-enabled Windows world.
The killer feature and the reason I built it: It runs as a system service without any additional tools, using the functionality provided by Win32::Daemon.
我的Perl是ActivePerl是5.10.0,打开ppm后,里面根本就没有Win32::Daemon模块,不能从ppm的界面中安装,也不能从ppm的命令行中安装成功。
按照CRONw(http://cronw.sourceforge.net/)提供的链接,找到了Win32::Daemon模块的主页http://www.roth.net/perl/Daemon/,按照提示转到ftp://www.roth.net/pub/ntperl/Daemon/20080324-beta/,打开FTP,里面只有一个bin目录,进去,可以看到三个文件在ftp://www.roth.net/pub/ntperl/Daemon/20080324-beta/bin/里面,:
daemon_5.6.Zip
daemon_5.8.Zip
daemon_5.10.Zip
分别对应于Perl 5.6、5.8和5.10,这个不能下载错了。
下载daemon_5.10.Zip,解压其中的Win32-daemon.ppd用于安装Win32::Daemon模块,仍旧不能安装成功。即使按照http://www.roth.net/perl/packages/的提示,添加了ppm repository,"Roth Consulting" 指向http://www.roth.net/perl/packages再安装也不行,总是提示所需的包不存在。
用文本编辑器打开Win32-daemon.ppd,找到
<IMPLEMENTATION>
<!-- Perl Version="5010" -->
<OS NAME="MSWin32" />
<ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.10" />
<CODEBASE HREF="http://www.roth.net/perl/packages/x86/Win32/Daemon_5.10.tar.gz" />
</IMPLEMENTATION>
将其中的
<CODEBASE HREF="http://www.roth.net/perl/packages/x86/Win32/Daemon_5.10.tar.gz" />
改为
<CODEBASE HREF="daemon_5.10.Zip" />
即当前目录下的daemon_5.10.Zip文件。
将下载的daemon_5.10.Zip文件拷贝到Win32-daemon.ppd目录,从Win32-daemon.ppd目录下的dos窗口中执行
ppm install Win32-daemon.ppd
即可完成Win32::Daemon模块的安装。
打开ppm,可以看到Win32::Daemon已经出现在installed列表中了。