Pete Emerson wrote: > > I'd appreciate it if someone could help me wrap my brain around this one. > I've got a string like this: > $string='"one two" three "four five six"'; > > I'd like to wind up with an array like this: > one two > three > four five six > > Essentially, I would like to split up the string on spaces, but ignore spaces that >are > inside pairs of quotes. So: > $string='"one two" three "four five" six "seven eight nine"'; > should wind up as: > one two > three > four five > six > seven eight nine >
I try another approach than all the good ones I've already read: # Regexp for quoted words my $q = qr/"\w+(?:\s+\w+)*"/; # Regexp for simple words my $w = qr/\w+/; my @parts = map {s/"//g; $_} $string =~ /\s* ($q | $w)/xg; print join "\n", @parts; produces your wanted output. I hope, it's simplier to read and understand this snippet. Best Wishes, Andrea -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]