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"