perl脚本和 perl dbi接口示例

本文记录了一个Perl脚本的编写过程。该脚本由同事编写,作者修改调试通过。脚本实现了连接MySQL数据库,从文件读取数据,根据日期统计相关数据,并将结果输出到文件的功能,展示了Perl在数据库操作和数据处理方面的应用。

第一个perl脚本是同事帮忙写的。这个功能用JAVA实现后,中途不抛异常退出;用perl后,正常。

同事帮忙写,我自己修改调试通过,竟然对perl有了一定的了解。写下来,备忘,说不定今天是个新

的开始。

#!/usr/bin/perl
use DBI;

#连接数据库,就是这么方便
$dbh = DBI->connect("DBI:mysql:newWap:172.16.58.36", "root","");

#perl io

open (F, "data.txt");
open (OUT, ">>result.txt");

#这里定义的是hashtable,与我们平常用的数组不一样,在这里比数组方便了很多
local (%all_count);
local (%db_count);
local (%qqs);
$sql = $dbh->prepare("select user_id from t_core_user");
$sql->execute();

#@表示数组
while (@qqid = $sql->fetchrow_array) {
$qqs{$qqid[0]} = "0";
}
print ("DB operation completed.\n");
while ($str = <F>) {
chomp($str);
#print ($str);
$ch = substr($str, 0, 1);
if ($ch eq "F") {
next;
}
@arr = split(/\t/, $str);
$qq = $arr[0];
$time = $arr[2];
if (length($time) < 6) {
next;
}
#print ("qq : $qq, time : $time\n");
if (substr($arr[2], 0, 6) eq "200505") {
$all_count{"5"} ++;
if (exists($qqs{$qq})) {
$db_count{"5"} ++;
}
}
if (substr($arr[2], 0, 6) eq "200506") {
$all_count{"6"} ++;

if (exists($qqs{$qq})) {
$db_count{"6"} ++;
}
}
if (substr($arr[2], 0, 6) eq "200507") {
$all_count{"7"} ++;

if (exists($qqs{$qq})) {
$db_count{"7"} ++;
}
}


}

print OUT ("6 : ".$all_count{"5"}." , ".$db_count{"5"}."\n");
print OUT ("6 : ".$all_count{"6"}." , ".$db_count{"6"}."\n");
print OUT ("6 : ".$all_count{"7"}." , ".$db_count{"7"}."\n");
close(F);
close(OUT);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值