my $line = ";field;;field;\t;field; ;field;field"; my @line = split ";", $line; my @null = grep { defined $_ } map { $line[$_] =~ /^$/ ? $_ : undef } (0..$#line); print "line contains ", scalar @null, " null fields at offset(s): @null"; #line contains 2 null fields at offset(s): 0 2