Perl语言入门(14 模块)

由于公司需要,本人最近在学习Perl这种脚本语言,本文是我在学习Perl的过程中总结出来的一些心得和笔记,希望能够帮助也在学习Perl的各位同僚。废话不多说直接上干货!!!

———————————————————————————干货分割线 —————————————————————————

模块概念

若要在你的P e r l程序中使用模块,可以使用 P e r lu s e命令,如:

use Cwd;

 

模块使用工作原理:

1) Perl解释程序读入代码,直到 use Cwd语句被找到。

2) Perl解释程序在安装目录中找到Cwd模块。

3) Perl读取该模块,该模块运行时需要的所有函数和变量均被初始化。

4) Perl解释程序从上次终止的位置开始,继续读取和编译你的程序。

 

读取模块的文档

每个模块都有相关的文档供你参考,查看模块文档的命令如下:

perldoc Cwd

 

模块引发的错误

1>.当使用模块编辑程序时,运行报错:

 

这有极大可能是由你的perl版本过低,许多性能不能使用的缘故造成的。在命令行中键入:

perl -v

查看perl版本,若版本号小于5,就有很多功能不能使用,请及时升级版本。

 

2>.当使用模块编辑程序时,运行报错:

 

问题可能是下列3者之一:

    • 模块的名字拼写有误。

    • 要使用的模块不是标准产品的组成部分,它没有安装在系统的正确位置上。

    • 安装的P e r l不完整,或者受到了破坏,也可能安装不正确。

Perl解释程序会按照出错消息输出的 @ I N C中的路径查看已安装的模块。如果这些模块移动了位置,被删除,或者无法使用,最简单的解决办法是重新安装Perl。

 

模块使用例子

Exp:

<1>在目录中搜索给定的文件名,若找打则输出文件名称

#!/usr/bin/perl -w
use strict;
use File::Find;
 
sub wanted{
    if($_ eq "test.txt"){
        print $File::Find::name;
    }
}
 
find \&wanted,'C:\Users\Administrator\Desktop';


<2>删除给定名称的文件

#!/usr/bin/perl -w
use strict;
use File::Find;
 
sub wanted{
    if(-f $File::Find::name){	#要查找的文件是不是个普通文件
        if($File::Find::name =~ /\.bak$/i){#文件名以.bak结尾忽略大小写
            print "Removing $File::Find::name";
            unlink $File::Find::name;	#删除文件
        }
    }
}
 
find \&wanted,'C:\Users\Administrator\Desktop',’D:’;

文件拷贝模块

use File::Copy;

copy(“sourcefile”,”destination”)||warn “could not copy files:$!”;

 

File::copy模块也提供了一个move函数。move函数能够将文件从一个目录移到另一个目录。也可以通过该函数对文件改名。当源文件和目标文件在同一个文件系统或磁盘上时,源文件将被改名。如果无法通过对文件改名来移动文件,那么文件首先拷贝到目标文件名,然后将原始文件删除。请看下面这个例子:

Exp:

#!/usr/bin/perl -w
use strict;
use File::Copy;
 
if(not move("test.txt","d:///test.txt")){
    warn "test.txt could not be moved:$!";
    unlink "d:/test.txt";
}


在上面的代码段中,文件test.txt从当前目录移到目标目录d:/中。 如果move函数运行失败,那么就可能存在不完整的目标文件,此时unlink函数将删除部分拷贝的目标文件。

通信模块

Net::Ping模块可以确定你的系统是否能够在网络上正确地进行通信。

Exp:

#!/usr/bin/perl -w
use strict;
use Net::Ping;
 
if(pingecho("www.baidu.com",15)){
    print "Baidu is on the network";
}else{
    print "Baidu is not on the network";
}

PS:

在上面这个代码段中,Net::Ping模块提供了一函数叫做pingecho。该函数有两个参数,第一个参数是要查找的主机,在上例中是www.baidu.com。第二个参数用于指明pingecho应该等待多长时间(单位:秒)才能收到对方的应答。

 

English模块

use English;

while(<>){

    print $ARG;

}

在上面的代码段中,while(< >)通常从STDIN中读取一个行输入,并将它赋予$_.但是,使用 use English,变量$ _也叫做$ARG。下面显示了特殊变量及其对应的英文变量的部分列表。

 

 

diagnostics模块

模块diagnostics能够查找程序中的错误。例如:

#!/usr/bin/perl -w
use strict;
use diagnostics;
 
print "For help,send mail to <a href="mailto:help@support.org/n\" ;"="">help@support.org\n";
 它能够输出文字更加详细的错误消息:

 

该消息前面的字母说明你遇到的是何种类型的错误。

    <W>:是一个警告

    <D>:表示使用了不该使用的语句

    <S>:严重警告

    <F>:表示致命错误

除了<F>遇到的其他错误代码都会继续执行。

通过浏览p e r l d i a g在线手册页,就可以看到出错消息和诊断消息的完整列表。

标准模块的完整列表

关于P e r l中包含的模块的完整列表,本书将不作详细的说明。下面是标准P e r l产品中的模块列表及其简单的说明。如果想知道模块的作用以及它如何运行,请使用p e r l d o c,以查看该模块的文档资料。

 


 

StrawberryPerl模块的安装说明文档链接:

http://blog.csdn.net/haoweilaizoule/article/details/52303998

 

 

 

 

 

 

 

 


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值