This seems to work:

----Code-----------------------------
#!/usr/local/bin/perl

my $str= "a bc \"d e f\" h \"i j\"";
print "str==$str==\n";

my $m= "_##_";  #Marker
$str =~ s,\"(\S),\"$m$1,g;
print "str==$str==\n";

@toks= map { (/^$m/)? do{ s,$m,,; $_ } : split(/\s+/, $_) } (split(/\"/,
$str));
print "tokens::", join(":", @toks), "::\n"; 
----Code-----------------------------

----Output-----------------------------
str==a bc "d e f" h "i j"==
str==a bc "_##_d e f" h "_##_i j"==
tokens::a:bc:d e f::h:i j::
----Output-----------------------------


-Nilanjan

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of Donald Leslie {74279}
Sent: Tuesday, October 04, 2005 12:28 PM
To: boston-pm@mail.pm.org
Subject: [Boston.pm] splitting a string containing quoted fields

I have a string of the form:

'a bc "d e f" h "i j"'  what I want is the quoted items not
to split on blanks.

[0] = 'a' , [1] = 'bc' , [2] = 'd e f' ... .

Is there is simple way to do this ?

Don Leslie
 
_______________________________________________
Boston-pm mailing list
Boston-pm@mail.pm.org
http://mail.pm.org/mailman/listinfo/boston-pm
 
_______________________________________________
Boston-pm mailing list
Boston-pm@mail.pm.org
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to