script1をscript2に変換して、db insert ステートメントを追加しました。ただし、スクリプトをループに入れた後、メモリが不足したように、しばらくすると script2 が停止します。script1 のみを実行すると、無限にループが実行されます。私は何が欠けていますか?
スクリプト1
logupdate("${cid}_$mon$day${year}_${time}_${status}.csv",
"$uid|$ext||$cid|$did|$status\n");
# log to file
sub logupdate
{
my $log = shift;
unless (open(LOG, ">>$path$log"))
{
print STDERR "Can't write to $path$log: $!\n";
}
print LOG @_;
close LOG;
}
スクリプト2
{
my $filedata = "${cid}";
my $filename = "$status";
logupdate("${cid}", "$status");
}
# log to file
sub logupdate
{
my $filedata = shift;
my $filename = shift;
if ( not $dbh ) {
$dbh = DBI->connect( $url, $user, $dbpass );
sleep 6;
print "reconnecting to db.... Success!\n";
}
if ( not $filedata eq '') {
$sth = $dbh->prepare('INSERT INTO cliinfo (calltype, callno)
VALUES(?, ?)');
$sth->execute($filename, $filedata);
print "Inserting into db $filename:\t\t$filedata\n";
}
}