On Sat, 1 Feb 2003, [EMAIL PROTECTED] wrote:
> $_ = 'use_name,mat_id,use_id,use_fname,mat_name,use_lname';
> 
> 
> How could I elegantly split/loop this into the following structure?
> %hash = (
>       use => ["use_name","use_id","use_fname","use_lname"],
>       mat => ["mat_id","mat_name"]    
> };
> 
> I started something like
> 
> foreach (split(/,/)) {
>       /(\w+)_\w+/;
>       $group{$1}++;
> }

I would make sure the match worked...  The following should work.

#!/usr/bin/perl -w

use strict;
use Data::Dumper;

my $words = 'use_name,mat_id,use_id,use_fname,mat_name,use_lname';
my %hash = ();

foreach my $item (split(',', $words)) 
{
        next unless $item =~ /(\w+)_\w+/;
        push @{$hash{$1}}, $item;
}

print Dumper \%hash;

_______________________________________________
Boston-pm mailing list
[EMAIL PROTECTED]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to