#!/usr/bin/perl use strict; use warnings; use autodie; use List::Util 'any'; my $input_file = 'DATA.csv'; my (@headers, %docs); my $n = 0; my @docs; open my $fh, '>',"fh.csv"; open(my $Fhresult, '<', $input_file); while (<$Fhresult> ) { last if (/^\d+\s+\d{2}:\d{2}:\d{2}\s*$/); } while (<$Fhresult> ) { if ($. == 3) { chomp; @headers = split ( /[ ,. ;:\(\)\/\*\"]+/ ); next; } next unless /\S/; chomp; my ($file, @fields) = split /\s*,\s*|\s+/; push @docs, {'file'=>$file, 'fields'=>\@fields} if any { $_ eq 'false' } @fields; } close($Fhresult);