`
haohappy2
  • 浏览: 326342 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

perl 常用module的使用

阅读更多

一些常用模块的简单描述 http://www.perldoc.com/perl5.6/pod/perlmodlib.html

在perl 中使用模块:
模块的下载地址:http://www.cpan.org/modules/01modules.index.html
安装模块:
1. perl Makefile.PL
2. make
3. make test
4. make install
也可以用如下命令安装模块(已知的适用的系统redhat 9.0,其他的我不知道,请大家试试看 :) 。
perl -MCPAN -e shell>

接着输入:install MODEL_NAME

查看模块的帮助:
perldoc MODEL_NAME
例如:
perldoc Net::FTP

已有模块:(以下的内容转自CU,谢谢CU的朋友)
说明:
以下例子代码的测试是在FreeBSD & Solaris下进行的,Perl版本为5.005_03。

(1) Net::FTP
(2) Net::Telnet
(3) LWP::Simple, get()
(4) Expect
(5) XML::Simple, XMLin()
(6) Data::Dumper, Dumper()
(7) IO::Socket
(8) Date::Manip, DateCalc(), UnixDate()
(9) Date::Manip, Date_Cmp()
(10) File::Find, find()
(11) ExtUtils::Installed, new(), modules(), version()
(12) DBI, connect(), prepare(), execute(), fetchrow_array()
(13) Getopt::Std
(14) Proc::ProcessTable
(15) Shell
(16) Time::HiRes, sleep(), time()
(17) HTML::LinkExtor, links(), parse_file()
(18) Net::Telnet, open(), print(), getline()
(19) Compress::Zlib, gzopen(), gzreadline(), gzclose()
(20) Net::POP3, login(), list(), get()
(21) Term::ANSIColor
(22) Date::Calc Calendar(), Today()
(23) Term::Cap, Tgetend(), Tgoto, Tputs()
(24) HTTPD::Log::Filter
(25) Net::LDAP
(26) Net::SMTP mail(), to(), data(), datasend(), auth()
(27) MIME::Base64, encode_base64(), decode_base64()
(28) Net::IMAP::Simple, login(), mailboxes(), select(), get()...
(29) Bio::DB::GenBank, Bio::SeqIO
(30) Spreadsheet::ParseExcel
(31) Text::CSV_XS, parse(), fields(), error_input()
(32) Benchmark

说明:
以下例子代码的测试是在RH Linux7.2下进行的,Perl版本为5.6.0。

(33) HTTP:: Daemon, accept(), get_request()...
(34) Array::Compare, compare(), full_compare()...
(35) Algorithm::Diff, diff()
(36) List::Util, max(), min(), sum(), maxstr(), minstr()...
(37) HTML::Parser
(38) Mail::Sender
(39) Time::HiRes, gettimeofday(), usleep()
(40) Image::Magick

以下模块在RedHat 9.0 ,perl version v5.8.0 built 通过。
(41) Data::SearchReplace
----------------------------------------------------------
(1)Net::FTP

#!/usr/bin/perl -w
# file: ftp_recent.pl
# Figure 6.1: Downloading a single file with Net::FTP
use Net::FTP;

use constant HOST => 'ftp.perl.org';
use constant DIR => '/pub/CPAN';
use constant FILE => 'RECENT';

my $ftp = Net::FTP->new(HOST) or die "Couldn't connect: ";
$ftp->login('anonymous') or die $ftp->message;
$ftp->cwd(DIR) or die $ftp->message;
$ftp->get(FILE) or die $ftp->message;
$ftp->quit;

warn "File retrieved successfully.\n";

-----------------------------------------------------------
(2)Net::Telnet
#!/usr/bin/perl -w
# file:remoteps.pl

use strict;
use Net::Telnet;
use constant HOST => 'phage.cshl.org';
use constant USER => 'lstein';
use constant PASS => 'xyzzy';

my $telnet=Net::Telnet->new(HOST);
$telnet->login(USER,PASS);
my @lines=$telnet->cmd('ps -ef');
print @lines;

--------------------------------------------------------------
(3)LWP::Simple, get()
#!/usr/bin/perl -w
use strict;
use LWP::Simple qw(get);

my $url = shift || "http://www.chinaunix.net";
my $content = get($url);

print $content;

exit 0;
最简单方便的get网页的方法。

-------------------------------------------------------------
(4) Expect

PHP代码:

#!/usr/bin/perl
use strict;
use Expect;

my $timeout = 2;
my $delay = 1;
my $cmd = "ssh";
my @params = qw/202.108.xx.xx -lusername -p22/;
my $pass = "passwd";

my $exp = Expect->spawn($cmd, @params) or die "Can't spawn $cmd\n";
$exp->expect($timeout, -re=>'[Pp]assword:');
$exp->send_slow($delay, "$pass\r\n");

$exp->interact();
$exp->hard_close();

exit 0;

-----------------------------------------------------------------
5) XML::Simple, XMLin()

PHP代码:

#!/usr/bin/perl -w
use strict;
use XML::Simple;
my $text = <<xml;
< ?xml version="1.0"? >
<web-app>
<servlet>
<servlet-name>php</servlet-name>
<servlet-class>net.php.servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
</web-app>
xml
my $x = XMLin($text);
foreach my $tag(keys %$x)
{
my %h = %{$$x{$tag}};
foreach(keys %h)
{
print "$tag => ";
print "$_ => $h{$_}\n";
}
}
exit 0;

----------------------------------------------------------------
(6) Data::Dumper, Dumper()

PHP代码:

#!/usr/bin/perl -w
use strict;
use Data::Dumper;

print Dumper(@INC);
print Dumper(%ENV);
exit 0;

-------------------------------------
(7) IO::Socket

PHP代码:

#!/usr/bin/perl -w
use strict;
use IO::Socket;

my $host = "www.chinaunix.net";
my $port = "80";
my $http_head = "GET / HTTP/1.0\nHost: $host:$port\n\n";
my $sock = IO::Socket::INET->new("$host:$port")
or die "Socket() error, Reason : $! \n";

print $sock $http_head;
print <$sock>;

exit 0;

---------------------------------------------------------------
(8) Date::Manip, DateCalc(), UnixDate()

PHP代码:

#!/usr/bin/perl
use strict;
use Date::Manip;
my $date1 = "Fri Jun 6 18:31:42 GMT 2003";
my $date2 = "2003/05/06";
my $flag=&Date_Cmp($date1,$date2);

if($flag<0)
{
print "date1 is earlier!\n";
}
elsif($flag==0)
{
print "the two dates are identical!\n";
}
else
{
print "date2 is earlier!\n";
}
exit 0;

--------------------------------------------------------------------
10) File::Find, find()
PHP代码:

#!/usr/bin/perl -w
use strict;
use File::Find;

my $file = "access.log";
my $path = "/";

find(&process, $path);

sub process{ print $File::Find::dir, "$_\n" if(/$file/); }

exit 0;

#用于在unix文件树结构中查找对象。

---------------------------------------------------------------
(11) ExtUtils::Installed, new(), modules(), version()

查看已经安装的模块的相应信息。
PHP代码:

#!/usr/bin/perl
use strict;
use ExtUtils::Installed;

my $inst= ExtUtils::Installed->new();
my @modules = $inst->modules();

foreach(@modules)
{
my $ver = $inst->version($_) || "???";
printf("%-12s -- %s\n", $_, $ver);
}
exit 0;

--------------------------------------------------------------------
(12) DBI, connect(), prepare(), execute(), fetchrow_array()

PHP代码:

#!/usr/bin/perl
use strict;
use DBI;

my $dbh = DBI->connect("dbi:mysql:dbname", 'user','passwd', '')
or die "can't connect!\n";
my $sql = qq/show variables/;
my $sth = $dbh->prepare($sql);
$sth->execute();

while(my @array=$sth->fetchrow_array())
{
printf("%-35s", $_) foreach(@array);
print "\n";
}
$dbh -> disconnect();
exit 0;

------------------------------------------------------------------------
(13) Getopt::Std

命令行参数解析。

PHP代码:

#!/usr/bin/perl
use strict;
use Getopt::Std;

my %opts;
getopts("c:hv", %opts);

foreach(keys %opts)
{
/c/ && print "welcome to ", $opts{$_} || "ChinaUnix", "!\n";
/h/ && print "Usage : $0 -[hv] -[c msg] \n";
/v/ && print "This is demo, version 0.001.001 built for $^O\n";
}
exit 0;

------------------------------------------------------------------------
(14) Proc::ProcessTable

#直接访问Unix进程表,类似ps command。

PHP代码:

#!/usr/bin/perl
use strict;
use Proc::ProcessTable;

my $pt = new Proc::ProcessTable;

foreach(reverse sort @{$pt->table})
{
print $_->pid, " => ";
print $_->cmndline, "\n";
}
exit 0;


--------------------------------------------------------------------
(15) Shell

PHP代码:

#!/usr/bin/perl
use strict;
use Shell;

print "now is : ", date();
print "current time is : ", date("+%T");

my @dirs = ls("-laF");
foreach(@dirs)
{
print if(//$/);#print directory
}
exit 0;

Shell命令直接做为函数,在Perl中调用。

---------------------------------------------------------------------
Another use of Time::HiRes Module.

(16) Time::HiRes, sleep(), time()

PHP代码:

#!/usr/bin/perl
use strict;
use Time::HiRes qw(sleep time);

$| = 1;
my $before = time;
for my $i (1..100)
{
print "$i\n";
sleep(0.01);
}
printf("time used : %.5f seconds\n", time - $before);
exit 0;


use Time::HiRes后,此模块提供sleep(), alarm(), time()的增强版以
取代perl内置的相应函数。
其中sleep()和alarm()的参数可以是小数。比如sleep(0.1)表示休眠0.1秒,
time()可以返回浮点数。

 

分享到:
评论

相关推荐

    perl常用模块

    本主题将深入探讨Perl中的几个常用模块,包括在Eclipse集成开发环境中使用Perl时如何支持XML和Switch语句。 首先,`XML::DOM`模块提供了对XML文档对象模型(DOM)的支持。DOM是一种与平台和语言无关的标准,用于...

    删除卸载单个perl模块脚本

    `Readme.txt`文件可能提供了关于如何使用`uninstall_perl_module.pl`脚本的详细说明,包括任何必要的参数、警告和注意事项。在执行脚本之前,务必阅读并理解其内容,以确保安全有效地卸载模块。 总的来说,卸载Perl...

    QTxlsx库和需要的perl安装文件

    "strawberry-perl-5.32.1.1-64bit.msi" 文件就是Strawberry Perl的一个64位版本,它包含了Perl解释器、标准库以及一些常用的Perl模块,使得用户能够在Windows系统上轻松地运行和开发Perl程序。 在使用QTxlsx库之前...

    perl资料

    Perl的模块化设计使得程序可重用性很高,例如,`Module::Build`用于构建和安装Perl模块,`Test::More`用于编写测试套件,` Moose `则是提供面向对象特性的强大框架。 总的来说,Perl是一种强大而灵活的编程语言,...

    perl 函数全集(绝版)

    通过阅读这些文档,开发者可以掌握Perl函数的使用方法,解决实际问题,并能更好地融入Perl编程社区。由于Perl函数全集资料稀少,这份压缩包中的内容尤为珍贵,值得深入研究。为了充分利用这份资源,建议逐个查阅各个...

    Learning Perl

    本章首先介绍了如何使用包(Package)来组织代码,随后重点讲述了如何利用模块(Module)扩展Perl的功能,最后还简要介绍了面向对象编程的概念及其在Perl中的实现方式。 6. **第六章:社会工程学** 虽然这里的...

    PERL编程24学时教程

    这门24学时的教程将引导你逐步深入Perl的世界,帮助你掌握其核心概念和常用技巧。 首先,Perl的语法是它的一大特点。Perl借鉴了C、awk和sed等语言的语法元素,使得它对于熟悉这些语言的程序员来说易于上手。学习...

    perl-tools:各种perl工具

    9. **模块打包和发布工具**:`Module::Build`和`ExtUtils::MakeMaker`是Perl模块构建和发布的工具,帮助开发者将代码打包成可供他人使用的模块。 10. **Perl学习资源**:"perl-tools-master"可能还包含了一些学习...

    Perl编程思想

    - **2.3.5 PerlModule和PerlRequire指令** 这些指令用于加载Perl模块和脚本。 - **2.3.6 Perl*Handlers** 通过不同的Perl处理器,可以自定义脚本的处理逻辑。 - **2.3.7 启动文件配置** 可以通过`...

    perl china-pub,.com 语言学习

    下面我们将深入探讨Perl语言的核心概念和常用技巧。 首先,Perl的语法特性是其独特之处。它借鉴了C、sed、awk等语言的特点,具有灵活的语句结构。例如,`print "Hello, World!\n";` 是Perl中最基础的输出语句,用于...

    Web Services With Perl

    这是本很有用的书,描述了网络服务基本理论及SOAP概念,例举了很多用各种perl module构建网络服务的源代码,比如非常常用的SOAP::Lite, XML-RPC等。

    perl-Astro-Coord-ECI:Perl类可预测卫星的位置和能见度

    ECEF坐标系是地球物理学和航空航天工程中常用的参考框架,能够方便地描述地球上的点和运动物体,如卫星的位置。 Perl-Astro-Coord-ECI 模块提供了以下核心功能: 1. **卫星轨道参数处理**:该模块支持使用常见的...

    Perl_Scrip_hn.zip_WEB开发_PHP-PERL_

    在Web开发领域,Perl和PHP是两种常用的脚本语言,它们各自拥有独特的特性和优势。标题中的"Perl_Script_hn.zip_WEB开发_PHP-PERL_"可能是一个包含Perl脚本的压缩包,旨在帮助开发者了解或实现PHP与Perl之间的交互,...

    nginx/1.21.6 &nginx-http-flv-module-1.2.10

    "pcre-8.45"代表Perl Compatible Regular Expressions库的8.45版本,Nginx在处理URL重写和其他正则表达式任务时会用到这个库。"openssl-1.1.1n"是OpenSSL的版本,这是一个强大的安全套接字层密码库,包含了各种加密...

    SNMP离线下载包,适用于Centos8的系统

    1. `perl-interpreter-5.26.3-420.el8.x86_64.rpm`:这是Perl解释器的RPM包,Perl是编写SNMP管理工具和脚本的常用语言。 2. `perl-libs-5.26.3-420.el8.x86_64.rpm`:Perl运行库,是Perl解释器运行时所需的库文件。 ...

    Nginx1.22.0版本Linux已编译可直接使用

    -with-http_random_index_module --with-http_auth_request_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_...

    gvim常用插件及其配置文件配置(下载解压即可使用)

    gvim常用插件及其配置文件 支持c,perl,python,latex。 需要自己安装ctags .vim: after compiler doc indent ltags perl-support skeleton syntax autoload c-support ftdetect keymap Makefile plugin ...

    Perl初学笔记之Hello World

    其中,`cpanm`(CPAN Minus)是一个常用的命令行工具,用于安装和管理Perl模块。 - **安装CPAN模块**:通过`cpanm`安装模块非常简单,只需要指定模块名称即可。例如: ```bash cpanm Module::Name ``` - **安装...

    编译nginx需要的库.zip

    OpenSSL是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其它目的使用。在Nginx中,OpenSSL用于支持HTTPS协议,实现服务器与...

Global site tag (gtag.js) - Google Analytics