Perl简单用法:命令行参数、连接数据库mysql、DNS查询、发送邮件

Perl简单用法:命令行参数、连接数据库mysql、DNS查询、发送邮件,第1张

概述一、命令行参数 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

一、命令行参数

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查询、发送邮件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1278163.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存