在一个文件里同时放入外壳命令和Perl函数

ZDNet软件频道 时间:2003-12-10 作者:ZDNet China |  我要评论(1)
本文关键词:外壳命令 perl
Perl很重要的一个特性是能够把外壳命令和Perl代码同时放在同一个文件里。Perl的Shell模块让这成为可能。Shell模块还能够在需要的时候使用AUTOLOAD函数来定义函数。
本文译自Builder.com,未经许可请勿转载

perl很重要的一个特性是能够把外壳命令perl代码同时放在同一个文件里。perl的Shell模块让这成为可能。Shell模块还能够在需要的时候使用AUTOLOAD函数来定义函数。

Shell模块并不真的能够将任何外壳命令定义为函数。但是,它使用perl的AUTOLOAD函数,将任何未经定义的函数作为命令传递给操作系统的外壳。

当你“使用”Shell模块的时候,你可以在“use”命令行里指定一系列命令。这样做的话,你就可以自动地把这些命令定义为由Shell输出的函数。这就能够让你调用它们,而不需要使用括号,如果使用的话,就会让程序看起来更像一个外壳脚本或者批处理文件。

例如,比较下面两个(结果)相同的调用:

这段代码:

use Shell;

copy('*.pl', 'backup');

和下面是一样的:

use Shell qw(copy);

copy '*.pl', 'backup';

第二个例子看起来更像是一个批处理文件,而第一个看起来更像传统的编程语言。

下面的例子将外壳命令perl的文件测试操作符组合起来了。它会检查两件事:看看已传递的名称是否是一个文件,以及看看它是否在过去一周被更新。如果是的话,它就将文件复制到备份目录里。

use Shell qw(copy);

copy $ARGV[0], 'backup' if (-f $ARGV[0] && -M $ARGV[0] <= 7);

perl的处理能力和标准的操作系统命令组合在一起,结果就是一个强大的脚本工具。使用Shell模块使得人们可以使用任何操作系统命令,就好像它们是perl内置的函数一样。


本文作者:James Brown具有20年的行业开发专长和经验,拥有多重工作背景,包括数字硬件设计,网络操作系统开发和分布式计算等。




责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134