use strict; use warnings; use Data::Dumper; while () { my @pairs; while (/(\w+="\w+")/g) {push @pairs, $1} print Dumper(\@pairs); } __DATA__ text one="1" two="2" three="3" x="y" #### $VAR1 = [ 'one="1"', 'two="2"', 'three="3"', 'x="y"' ];