SPUG: hash from string
ced at carios2.ca.boeing.com
ced at carios2.ca.boeing.com
Wed Jul 12 15:27:33 CDT 2000
> This comes close:
> %hash = split /\n|\s*=\s*/, $x;
> And this cleans it up a little bit:
> %hash = map /'(.*)'/, split /\n|\s*=\s*/, $x;
On Jul 12, 2000 @ 11:28am, Peter Dueber wrote:
> Anyone have a good technique (maybe using map?) to take a string (with embedded new-lines)
> like the following:
>
> $x = "
> 'xyz' = '/export/home'
> 'adfd' = '/usr/there'
> 'ddddd = '/someplace/else'
> etc";
>
> and directly convert it to a hash equivalent to :
>
> %hash = ('xyz' => '/export/home',
> 'adfd' => '/usr/there',
> 'ddddd => '/someplace/else',
> etc.
> );
Or, to avoid initial blank fields becoming
null hash keys:
my %hash = map { /\S/ ? $_ : () } split /\n|\s*=\s*/ => $x;
There may be better golfing around too :)
Rgds,
--
Charles DeRykus
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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