
一、命令行参数
1.1 代码
#!/usr/bin/env perluse Getopt::Long;use Data::Dumper;use Pod::Usage;my $DeBUG = 1;sub dprint (@){ return unless $DeBUG; chomp(my @m = @_); print STDERR 'DEBUG: ',join(" ",@m),"\n";}MAIN:{ my $db_user; my $db_pass; Getoptions( \my %opt,'deBUG|d+' => $DeBUG,'help|h|?' => sub{ pod2usage(-verbose=>1) },'db_user|u=s' => $db_user,'db_pass|x=s' => $db_pass,) or pod2usage(); pod2usage(-message=>"must requires db_user,db_pass!") unless $db_user && $db_pass; dprint "db_user : $db_user"; dprint "db_pass : $db_pass";} 1.2 使用
命令:“--” 或 “-”
./test.pl --db_user testuser --db_pass testpass
./test.pl --u testuser --x testpass
二、连接数据库MysqL
2.1 代码
#!/usr/bin/env perluse DBI;MAIN:{ my $dbh = DBI->connect("DBI:MysqL:clouxns:202.85.222.121:3306","root","zxc1758!&%*"); $query_sql = "SELECT zone_ID,zone_name FROM xns_zone"; $query_sth = $dbh->prepare($query_sql); $query_sth->execute() or dIE "can't run query sql:$dbh->errstr"; while(my @data = $query_sth->fetchrow_array()) { my $zone_ID = $data[0]; my $zone_name = $data[1]; print "$zone_ID\t$zone_name\n"; } $dbh->disconnect();} 三、DNS查询
dns查询A记录、NS、SOA。
#!/usr/bin/env perluse Net::DNS::Resolver;use Net::DNS::Packet;MAIN:{ my $resolver = Net::DNS::Resolver->new;#Find a host's address my $query = $resolver->search("www.guowenyan.cn"); if($query) { foreach my $rr ( grep { $_->type eq "A" } $query->answer ) { print $rr->address,"\n"; } } else { warn "query Failed:",$resolver->errorstring,"\n"; }#Find the nameservers for a domain. my $query = $resolver->search("baIDu.com","NS"); if($query) { foreach my $rr ( grep { $_->type eq "NS" } $query->answer ) { print $rr->nsdname,"\n"; }#Find a domain's SOA record in zone file format. my $query = $resolver->search("baIDu.com","SOA"); if($query) { ($query->answer)[0]->print; } else { warn "query Failed:","\n"; }} 四、发送邮件
4.1 代码
#!/usr/bin/env perluse Net::SMTP;sub send_mail(){ my @mail_to = ('480160531@qq.com','2135361204@qq.com'); my $mail_from = 'kan_haha001@163.com'; my $mail_pass = "123zxc"; my $mail_message = "aanbb"; my $smtp = Net::SMTP->new("smtp.163.com"); $smtp->auth($mail_from,$mail_pass) || dIE "Auth Error! $!"; foreach my $mail_to (@mail_to) { $smtp->mail($mail_from); $smtp->to($mail_to); #Start the mail $smtp->data(); #Send the header $smtp->datasend("From: $mail_from\n"); $smtp->datasend("To: $mail_to\n"); $smtp->datasend("Subject: the mail is sended by perl.\n"); $smtp->datasend("\n"); #send the message $smtp->datasend("$mail_message\n"); #send the termination string $smtp->dataend(); } $smtp->quit();} 4.2 注意事项 1. 需要安装Authen::SASL:perl -MCPAN -e shell cpan>install Authen::SASL。
2. 发件人、收件人必须是单引号('kan_haha001.163.com')。
3. 邮件头中的发件人、收件人、主题、正文的前后都必须有\n。(否则会系统退信)
参考资料:
perl发邮件:http://blog.sina.com.cn/s/blog_53eb83640100n1mo.html
perl发送邮件:http://www.cnblogs.com/aLittleBitCool/archive/2012/08/01/2619018.html
总结以上是内存溢出为你收集整理的Perl简单用法:命令行参数、连接数据库mysql、DNS查询、发送邮件全部内容,希望文章能够帮你解决Perl简单用法:命令行参数、连接数据库mysql、DNS查询、发送邮件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)