perl共享模块数据(以模块形式存放配置信息)

发布时间:2020-10-08编辑:脚本学堂
很多程序都需要连接数据库,所以可以将数据库的连接信息做成一个模块(全局配置文件)...

很多程序都需要连接数据库,所以可以将数据库的连接信息做成一个模块(全局配置文件),在需要的程序之间共享,利用perl模块可以导出自己符号表这个特性来实现共享数据库连接的配置文件。其他类似的情况都推荐这种处理方式。

直接给出示例。

DBConfig.pm
数据库连接信息存放在这个模块中
 

复制代码 代码如下:

# 来源: Lover的工具小屋
# author: Lover
package DBConfig;
use strict;
use warnings;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw(%db_config);# 默认导出的变量列表

# 公用的数据库连接信息
our %db_config = (
  database => 'tmp_ygfs',
  username => 'lover',
  password => 'bloodiron888@gmail.com',
  dbhost   => 'localhost',
  dbport   => '3306',
  );

1;

app.pl   需要连接数据库进行一些操作的程序
 

复制代码 代码如下:

# 来源: Lover的工具小屋
# author: Lover
use strict;
use warnings;
use lib ("/root/perl/Wed");
use DBConfig;   # 使用这个模块
use DBI;
 
my $dbh = DBI->connect("DBI:mysql:database=$db_config{database};host=$db_config{dbhost};port=$db_config{dbport}",$db_config{username},$db_config{password})
 or die "connect database failure!";

my $sql = "some sql statement";
my $sth = $dbh->prepare($sql)
 or die $dbh->errstr;
my $rows = $sth->execute()
 or die $dbh->errstr;
while (my @row = $sth->fetchrow_array()){
do something ...
}
 

触类旁通,可以通过类似方法来管理一些全局通用的配置文件,复杂程度和数据存放形式不限。