-1

script1script2に変換して、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";
    }
}
4

1 に答える 1