perl模块编程

简介:
###########################################################
提供个人自己参考的perl代码片段...
###########################################################
#!/usr/bin/perl -w
use strict;
use LWP::Simple qw(get);
my $url = shift || " http://www.51cto.com";
my $content = get($url);
print $content;
exit 0;
获取网页

#!/usr/bin/perl
use strict;
use Net::FTP;
my $user = "anonymous";
my $passwd = "chinaunix@";
my $host = " ftp.freebsd.org";
my $ftp = Net::FTP->new("$host", Debug =>0)
or die "Can't connect to $host:  $@\n";
$ftp->login("$user","$passwd")
or die "Can't login\n", $ftp->message;
$ftp->cwd("/pub/FreeBSD/doc/")
or die "Can't change dir\n", $ftp->message;
$ftp->get("README")
or die "get failed\n", $ftp->message;
$ftp->quit;
exit 0;
FTP下载

#!/usr/bin/perl
use Mail::Sender;
#my $mailtext = "Das is\'t der Text\nden ich gerne senden wuerde...";
my $sender = new Mail::Sender {
        smtp => 'smtp.163.com',
     from =>  'zhuzhengju20@163.com',
     auth => 'LOGIN',
     authid => 'zhuzhengju20',
     authpwd => '2000',
     on_errors => undef,
} or die "Can't create the Mail::Sender object: $Mail::Sender::Error\n";
$sender->MailFile({to =>'hahazhu0634@126.com',
       subject => 'Here is the file',
       msg => "I'm sending you the list you wanted.",
       file => './name.txt'}) or print $Mail::Sender::Error;
$sender ->Close();
发送带附件的邮件,需要验证,若不需要验证请参考下面的例子!~
[补充知识]
(1)安装Mail::Sender模组
perl -MCPAN -e shell
install Mail::Sender
(2)测试auth参数使用以下命令:
#perl -MMail::Sender -e "Mail::Sender->printAuthProtocols('smtp.sina.com.cn')"

#!/usr/bin/perl
use Mail::Sender;
open(IN, "< ./index.html") or die("");
$sender = new Mail::Sender{
                                                        smtp =>'localhost',
                                                        from =>'root@localhost'
                                                        };
$sender->Open({
                                        to =>'zhuzhengju20@163.com',
                                        subject =>'hello,baby!',
                                        msg =>"please,recive content!",
                                        ctype =>"text/html",
                                        encoding =>"7bit",
                                        });
while(<IN>)
{
        $sender->SendEx($_);
}
close IN;
$sender->Close();
print $Mail::Sender::Error eq "" ? "send ok!\n" : $Mail::Sender::Error;
从本地发送HTML的邮件,不需要本地验证(若需验证,请参考上面的例子!~)

#!/usr/bin/perl
# fileName: predate
my %mon=(
  1 =>"Jan",  2 =>"Feb",  3 =>"Mar",  4 =>"Apr",
  5 =>"May",  6 =>"Jun",  7 =>"Jul",  8 =>"Aug",
  9 =>"Sep",  10 =>"Oct", 11 =>"Nov", 12 =>"Dec"
);
my ($sec1,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time-86400);
   $mon++;
   $mon=$mon{$mon};
   $mday = sprintf("%02s",$mday);
   $hour = sprintf("%02s",$hour);
   $min = sprintf("%02s",$min);
   $sec = sprintf("%02s",$sec);
   $year+=1900;
print "$mday/$mon/$year\n";
print "$hour:$min:$sec\n";
[注意:]
显示昨天的时间,如果将localtime(time-86400)改成localtime(time)那么时间就为今天的时间了


本文转自hahazhu0634 51CTO博客,原文链接:http://blog.51cto.com/5ydycm/166240,如需转载请自行联系原作者
相关文章
|
3月前
|
存储 Perl
Perl 教程 之 Perl 包和模块 3
**Perl模块简述:**模块是可重用的代码包,如`Foo.pm`,包含`package Foo`及函数如`bar`和`blat`。`require`或`use`加载模块,`@INC`数组存储搜索路径。`eval`执行模块代码,末尾的`1;`确保成功加载。
34 0
|
3月前
|
Perl
Perl 教程 之 Perl 包和模块 2
Perl教程介绍了BEGIN和END模块,它们在脚本加载编译后(BEGIN)和解释器退出前(END)执行。这两个关键字常用于模块创建。示例代码显示了BEGIN打印&quot;这是BEGIN语句块&quot;,主程序打印&quot;Begin和Block实例&quot;,而END在结束时打印&quot;这是END语句块&quot;。
28 0
|
3月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 5
Perl的面向对象编程涉及匿名哈希表或数组来存储对象属性。类通过`@ISA`数组实现继承,如Employee继承Person。在Employee.pm中声明`@ISA = qw(Person)`。在main.pl中,创建Employee对象并调用方法,显示继承功能。程序输出显示姓名的变化。
40 0
|
3月前
|
Unix Windows Perl
Perl 教程 之 Perl 包和模块 4
Perl教程讲解了包和模块的使用。`require`和`use`函数都能调用模块,但有区别:`require`在运行时加载,需指定包名调用函数;`use`在编译时加载,无需包名且能引入子模块。`use`根据@INC路径找模块,`require`可指定路径。通过`use Exporter`, `@ISA = qw(Exporter)`, `@EXPORT`数组可导出默认符号。示例中展示了如何定义和导出模块中的函数。
22 3
|
3月前
|
Perl
Perl 教程 之 Perl 包和模块 1
Perl教程介绍了包和模块的概念。包是具有独立符号表的命名空间,允许在同一程序中使用相同变量名而不冲突。通过`package mypack;`定义包,使用`包名::变量名`来访问其他包的变量。示例展示了`main`和`Foo`两个包的交互,利用`__PACKAGE__`变量显示当前包名。程序输出显示了不同包中变量的独立性。
30 2
|
3月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 3
Perl的面向对象编程涉及两种实现:匿名哈希表引用和数组引用。对象是类(Perl包)中数据项的引用,方法是接收类名或对象作首参的子程序。
22 3
|
3月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 1
Perl的面向对象编程涉及两种实现:使用匿名哈希表存储对象属性的引用,或使用数组为每个属性创建行索引。对象是类的实例,类是包含方法的Perl包。方法是接受对象或类名作为首参的子程序。`bless()`函数用于构建对象,将引用与类关联。
20 3
|
3月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 4
Perl的面向对象涉及两种对象实现:匿名哈希表和数组。对象是类的实例,类是包含方法的Perl包。方法是接收对象引用作为首参的子程序。`bless()`函数用于构造对象。以下是一个Person类的例子,包含`new`构造器、`getFirstName`和`setFirstName`方法。在`employee.pl`脚本中,创建Person对象并演示了方法的使用。输出显示了姓名的设置和获取过程。
23 2
|
3月前
|
存储 Java 索引
Perl 教程 之 Perl 面向对象 7
在Perl OOP中,对象基于匿名哈希或数组实现,存储实例属性。当调用不存在的方法时,Perl查找AUTOLOAD来动态处理。析构函数DESTROY在对象销毁时自动调用,允许执行清理操作。不能修改传递给DESTROY的只读引用,但可写入对象本身。析构器可调用基类或其他类的DESTROY,但通常不手动调用。对象释放时,其所含对象也会自动销毁。
24 1
|
3月前
|
存储 索引 Perl
Perl 教程 之 Perl 面向对象 2
Perl的面向对象编程涉及两种实现:匿名哈希表引用和数组引用。对象是类数据的引用,类是包含方法的Perl包。方法是接收类名作为首参的子程序。`bless()`函数用于构造对象。类定义为包,提供独立命名空间,文件通常以`.pm`结尾。例如: ```markdown .package Person # 类代码... .end ``` 简而言之,Perl的OOP基于引用,类是包,方法是子程序,`bless`构造对象,类定义创建命名空间。
22 2