my $url = ( $entry[6] =~ m{^http://.*v1=(.*)&v2=(.*)&v3=.*$} ) ? "$1$2" : undef ; # ... More parsing code can go here. if ( grep {not defined $_} ( $http_code, $url, @edate[0..3] ) ) { warn "Skipping unparseable line $. :\n"; # ... and dump vars. next; } $STATUS{$http_code}{$url}{$edate[0]}{$edate[1]}{$edate[2]}{$edate[3]}++;