snip... my @row = split(/;/, $array[$_]); if ( defined @row ) { $hash{$_} = \@row; } else { print "Empty line at: $_\n"; } snip... #### open(IN, "$file") || die "Cant open $file\nReason: $!\n"; while () { chomp(); my @row = split(/;/); if ( defined @row ) { $hash{$.} = \@row; } else { print "Empty line in $file at line: $.\n"; } }