文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Perl怎么连接数据库mysql

2024-04-02 19:55

关注

本篇内容主要讲解“Perl怎么连接数据库mysql”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Perl怎么连接数据库mysql”吧!

一、命令行参数

1.1 代码

#!/usr/bin/env perl

use 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

Perl怎么连接数据库mysql

二、连接数据库mysql

2.1 代码

#!/usr/bin/env perl

use 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 perl

use 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";
                }
        }
        else
        {
                warn "query failed:",$resolver->errorstring,"\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:",$resolver->errorstring,"\n";
        }
}

四、发送邮件

4.1 代码

#!/usr/bin/env perl

use 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怎么连接数据库mysql”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯