Длина файла не равна 0, а пуста. Как это устранить?

Я написал оболочку Perl, применяя некоторые команды unix, записывая вывод в файл журнала. Однако я вижу, что он создает какой-то пустой файл, но я вижу, что некоторые из создаваемых файлов имеют размер не 0, вместо этого он указывает 1 байт; поэтому у меня возникли проблемы с использованием «if (-s «file» )сделать что-то еще, сделать другое» для некоторых материалов постобработки. Может кто-нибудь помочь, почему мой код создает пустую строку (Я думаю, хотя я уже поместил туда chomp ), есть ли способ удалить эту пустую строку, чтобы выходной файл журнала всегда был равен 0 байт, если после обработки команды unix данные не собираются? Или еще... можете ли вы предложить эффективный способ проверить, не пуст ли файл для такого случая.

sub sub_unaccessfiles {
    my ($disk) = @_ ;
    @disk_sorted = split (/\s+/, $disk) ;
    $disk_Name = $disk_sorted[4] ;
    my $aging_disk = basename ($disk_Name) ;
    open (OUT3, ">./diskmonitor_logs/char_disks/aging_files_$aging_disk") || die "Cannot create./diskmonitor_logs/char_disks/aging_files_$aging_disk: $!\n" ;
    my $cmd_aging_grab = `find $disk_Name -type f -name.snapshot -prune -o -atime +180 -printf '%u\t%s\t%t\t%p\n'` ;  
    chomp $cmd_aging_grab ;
    print OUT3 "$cmd_aging_grab\n" ;
    close OUT3 ;
      ..
      ..
}
0
задан chepner 16 August 2012 в 17:35
поделиться