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