免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 32684 | 回复: 40
打印 上一主题 下一主题

Perl模块使用 => 简短例子代码集合!  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-06 17:32 |只看该作者 |倒序浏览
如果你有模块使用范例(请尽量简洁),请帖新贴,
或坛内邮件(主题:perl模块使用范例)给我,由我测试
整理以后,在此发布。
希望多多支持!

真心希望朋友们能在chinaunix受益。大家共同进步!
谢谢! :)     






已有模块:
说明:
以下例子代码的测试是在FreeBSD & Solaris下进行的,Perl版本为5.005_03。     

(1) LWP::Simple, get()
(2) Time::HiRes, gettimeofday(), usleep()
(3) Net::FTP
(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()

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

(32) Benchmark
(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

论坛徽章:
0
2 [报告]
发表于 2003-06-06 17:34 |只看该作者

Perl模块使用 => 简短例子代码集合!

(1) LWP::Simple, get()


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

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

  6. print $content;

  7. exit 0;
复制代码
   

最简单方便的get网页的方法。

论坛徽章:
0
3 [报告]
发表于 2003-06-06 17:35 |只看该作者

Perl模块使用 => 简短例子代码集合!

(2) Time::HiRes, gettimeofday(), usleep()

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Time::HiRes qw(gettimeofday usleep);

  4. my ($start_sec, $start_usec, $end_sec, $end_usec, $time_used);
  5. my $micro_sec = 100000;
  6. ($start_sec, $start_usec) = gettimeofday;

  7. foreach(1..20)
  8. {
  9.         print `date +\%H:\%M:\%S`;
  10.         usleep($micro_sec);
  11. }

  12. ($end_sec, $end_usec) = gettimeofday;
  13. $time_used = ($end_sec - $start_sec) + ($end_usec - $start_usec)/1000000;

  14. printf("time used  : %.3fsec\n", $time_used);       
  15. exit 0;   
复制代码
   

提供微秒级时间处理。

论坛徽章:
0
4 [报告]
发表于 2003-06-06 17:37 |只看该作者

Perl模块使用 => 简短例子代码集合!

(3) Net::FTP

  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::FTP;

  4. my $user = "anonymous";
  5. my $passwd = "chinaunix@";
  6. my $host = "ftp.freebsd.org";

  7. my $ftp = Net::FTP->;new("$host", Debug =>; 0)
  8. or die "Can't connect to $host: $@\n";

  9. $ftp->;login("$user","$passwd")
  10. or die "Can't login\n", $ftp->;message;

  11. $ftp->;cwd("/pub/FreeBSD/doc/")
  12. or die "Can't change dir\n", $ftp->;message;

  13. $ftp->;get("README")
  14. or die "get failed\n", $ftp->;message;

  15. $ftp->;quit;
  16. exit 0;
复制代码

论坛徽章:
0
5 [报告]
发表于 2003-06-06 17:37 |只看该作者

Perl模块使用 => 简短例子代码集合!

(4) Expect

  1. #!/usr/bin/perl
  2. use strict;
  3. use Expect;

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

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

  12. $exp->;interact();
  13. $exp->;hard_close();

  14. exit 0;
复制代码

论坛徽章:
0
6 [报告]
发表于 2003-06-06 17:37 |只看该作者

Perl模块使用 => 简短例子代码集合!

(5) XML::Simple, XMLin()

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use XML::Simple;

  4. my $text = <<xml;
  5. <?xml version="1.0"?>;
  6. <web-app>;
  7.   <servlet>;
  8.     <servlet-name>;php</servlet-name>;
  9.     <servlet-class>;net.php.servlet</servlet-class>;
  10.   </servlet>;
  11.   <servlet-mapping>;
  12.     <servlet-name>;php</servlet-name>;
  13.     <url-pattern>;*.php</url-pattern>;
  14.   </servlet-mapping>;
  15. </web-app>;
  16. xml

  17. my $x = XMLin($text);
  18. foreach my $tag(keys %$x)
  19. {               
  20.         my %h = %{$$x{$tag}};
  21.         foreach(keys %h)
  22.         {               
  23.                 print "$tag =>; ";
  24.                 print "$_ =>; $h{$_}\n";
  25.         }
  26. }
  27. exit 0;
复制代码

论坛徽章:
0
7 [报告]
发表于 2003-06-06 17:38 |只看该作者

Perl模块使用 => 简短例子代码集合!

(6) Data:umper, Dumper()

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Data::Dumper;

  4. print Dumper(\@INC);
  5. print Dumper(\%ENV);
  6. exit 0;
复制代码

论坛徽章:
0
8 [报告]
发表于 2003-06-06 17:38 |只看该作者

Perl模块使用 => 简短例子代码集合!

(7) IO::Socket

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use IO::Socket;

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

  9. print $sock $http_head;
  10. print <$sock>;;

  11. exit 0;
复制代码

论坛徽章:
0
9 [报告]
发表于 2003-06-06 18:34 |只看该作者

Perl模块使用 => 简短例子代码集合!

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

  1. #!/usr/bin/perl
  2. use strict;
  3. use Date::Manip;

  4. my $date=&DateCalc("today","-1 days", 0);#yesterday
  5. my $date=&UnixDate($date, "%Y-%m-%d %T");

  6. print "$date\n";
  7. exit 0;
复制代码

论坛徽章:
0
10 [报告]
发表于 2003-06-06 18:42 |只看该作者

Perl模块使用 => 简短例子代码集合!

(9) Date::Manip, Date_Cmp()
#用于时间日期的比较

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

  7. if($flag<0)
  8. {
  9.         print "date1 is earlier!\n";
  10. }
  11. elsif($flag==0)
  12. {
  13.         print "the two dates are identical!\n";
  14. }
  15. else
  16. {
  17.         print "date2 is earlier!\n";
  18. }
  19. exit 0;
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP