perl 实现a文件通过键值取b文件内容
#最后的生成文件用于邮件发送 my $email_file="/db/setup/sendEmail/$year-$mon-$day-account.txt";my $email_file2="/db/setup/sendEmail/$year-$mon-$day-account2.txt";
my $expfile="/db/setup/sendEmail/exp.txt";
sub select{
my $lev_message="select a.email,e.name,e.exp from tbl_sch_charactor as e ,tbl_sch_account as a where a.id=e.guid and exp>='139609' order by exp;";
my $user="root";
my $password="xx";
my $driver="DBI:mysql";
my $dbh=DBI->connect("$driver:database=$_;host=localhost;user=$user;password=$password");
$dbh->do("use $_;") or die "Can't ". $dbh->errstr;
$dbh->do("set names utf8;") or die "Can't set names". $dbh->errstr;
my $sth=$dbh->prepare($lev_message) or die "Can't connect: ". $dbh->errstr;
$sth->execute() or die $sth->errstr;
my($email,$name,$exp);
$sth->bind_columns(\$email,\$name,\$exp);
#由于数据误置里面特殊字符一堆于是放入@@@符号作为文件间隔使用
open (HEAD,">$_")|| die "Can't create $_:$!\n";
printf HEAD "%s\t%-s\t%-s\t%-s\n","email","name","@@@","exp";
while($sth->fetch()){
open (HEAD,">>$_")|| die "Can't write $_:$!\n";
printf HEAD "%s\t%-s\t%-s\t%-s\n",$email,$name,"@@@",$exp;
}
页:
[1]