end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

複数コマンドの標準出力(STDOUT)のclose()で、「error writing output file」

どうやら、次のload_total_data()でclose()が例外を投げるみたい。
標準出力を2個経由している為?、opensslを利用している為?
よく分かりませんが、dieせず、warning程度にしておきます

my $OPENSSL = '/usr/bin/openssl';
my $GUNZIP = '/bin/gunzip';
my $DECRYPT_KEY = 'ないしょ';

sub load_total_data {
    my ($date_str) = @_;

    my $csv_path = join('/',
			$CSV_DIR,
			$date_str,
			join('','Data',$date_str,'.csv.gz.ec') );

    my $cmd = join(' ',
		   "$OPENSSL  bf -d -base64 -k $decrypt_key -in $csv_path |",
		   "$GUNZIP - | ");

    open(my $fh , $cmd) or die "can't open $cmd $!";

    my $line_no = 0;
    while(my $csv_line = <$fh>){
    	#SOMOTHING TO DO
    }

    unless(close($fh)){
	print STDERR "can't close $cmd $!\n";
    }
    return;
}