use Data::Dumper; my $stuff = 'ASDFZXCV S;JL KJQWER QWER ZXCVO ;QLKWERQ JKL;JAPS'; my %hash; my @keys = qw( asdf qwer jkl; ); @hash{@keys} = $stuff =~ / (asdf) .*? (qwer) .*? (jkl;) /gix; print Dumper \%hash;