SPUG: hash from string
Tim Maher/CONSULTIX
tim at consultix-inc.com
Fri Jul 14 15:10:08 CDT 2000
On Fri, Jul 14, 2000 at 11:59:26AM -0700, Peter Dueber wrote:
> By george you're right Tim!
>
> However it doesn't work for the case: digit = 'quoted string'
>
> 2='something'
> 3='something else'
> etc.
Didn't know that it was supposed to!
But all that would take is a modification to the RE; I initially tried
a solution that did it all with one matching operator, but it was too
complex and ugly, so I'll show you these easier solutions:
$x="
'abc' = '/abc/xyz',
2 = '/abc/xyz',
'bac' = '/bac/xyz',
33 = '/c/z'
";
# pre-process to quote digit strings:
$x =~ s/(\d+)(\s*=)/'$1'$2/g;
# now run original one-liner solution:
%hash = $x =~ /'([^']+)'.+?'([^']+)'/g;
# Or, less "scrutably", using a hightly contrived one-liner:
%hash = (($x =~ s/(\d+)(\s*=)/'$1'$2/g), $x) =~ /'([^']+)'.+?'([^']+)'/g;
-Tim
*========================================================================*
| Dr. Tim Maher, CEO, Consultix (206) 781-UNIX/8649; ask for FAX# |
| Email: tim at consultix-inc.com Web: http://www.consultix-inc.com |
| CLASSES: 8/14: UNIX Fund. 8/21: Shell & Utilities 9/11: Perl + Mods |
*========================================================================*
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
Subscriptions; Email to majordomo at pm.org: ACTION LIST EMAIL
Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
For full traffic, use spug-list for LIST ; otherwise use spug-list-digest
Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/
More information about the spug-list
mailing list