my @line = qw(foo;bar baz;qux user;errors;suck trust; ;no-one ;); #### my %hash = grep !/^$/, map { ($a,$b) = $_ =~ /^([^;]+);([^;]+)/; ($a,$b); } @line; #### use Data::Dumper; print Dumper \@array; print Dumper \%hash; print Dumper $reference;