我需要改變我的例程,並將最終的outfile解壓縮。我試圖弄清楚在perl子例程中調用一個處理文件的最佳方法是什麼。perl - 創建gzip文件的最佳方式
例如,我有一個創建文件(extract_data)的子例程。 這裏的主循環和子程序:
foreach my $tblist (@tblist)
{
chomp $tblist;
extract_data($dbh, $tblist);
};
$dbh->disconnect;
sub extract_data
{
my($dbh, $tblist) = @_;
my $final_file = "/home/proc/$node-$tblist.dat";
open (my $out_fh, '>', $final_file) or die "cannot create $final_file: $!";
my $sth = $dbh->prepare("...");
$sth->execute();
while (my($uid, $hostnm,$col1,$col2,$col3,$upd,$col5) = $sth->fetchrow_array()) {
print $out_fh "__my_key__^A$uid^Ehost^A$hostnm^Ecol1^A$col1^Ecol2^A$col2^Ecol3^A$col3^Ecol4^A$upd^Ecol5^A$col5^D";
}
$sth->finish;
close $out_fh or die "Failed to close file: $!";
};
辦內主要還是與子gzip的?最好的辦法是什麼? 然後我的新文件將是
謝謝。
在我的情況下,它並沒有比 – 2011-03-02 21:18:22
更容易,那麼'@ some_uncompressed_data'是什麼?會打印$ gzip @ final_file嗎? – jdamae 2011-03-02 21:35:41
@jdamae - 無論你現在發送給'$ out_fh'。如果你願意的話,你可以多次調用'print $ gzip_fh ...'',就像你現在正在做的那樣。 – mob 2011-03-02 21:40:20