I'd still use a regex to collect the contents of the lines :
use strict; my $line; while ($line = <DATA>) { chomp $line; print $line,"\n"; while ($line =~ s/(?:^([^" ]+)|^"([^"]+)")(?: |$)//) { print ">>>",$1||$2,"\n"; print $line,"\n"; }; }; __DATA__ "72 3267S" "S2079" 1 no "72 0250" "S3011" 1 no "72 8351S" "S6101" 1 no "72 17082S" "S6108" 1 no
The regex nibbles from the start of each line either something starting with a non-quote, or a quote and then everything including the ending quote and the separating space. At the end of a line, no space is allowed.
perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web
In reply to Re: Splitting strings with enclosed delimiters
by Corion
in thread Splitting strings with enclosed delimiters
by dsheroh
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |