どうやら、次の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; }