On Fri, 2006-28-04 at 15:40 +0100, Graeme McLaren wrote: > Hi all, I need to loop over an array of hashes and assign a new hashref if a > condition is met: > > I have a scalar which contains an array of hashes: > > $locations = [ > { > 'location_name' => 'Fionas House', > 'location_id' => '9999000000000027' > }, > { > 'location_name' => 'Central Locations', > 'location_id' => '9999' > }, > { > 'location_name' => 'The Queen\'s Hoose', > 'location_id' => '1076' > }, > { > 'location_name' => 'Santa', > 'location_id' => '1075' > }, > ] > > > > I want to add an new hash ref in if, for example, > > if($x ==9999000000000027){ > $locations->[0]->{'location_status'} = 'true' > > } > > > I've been at this a few hours and I'm not getting anywhere, can anyone > suggest a way to do this?
An reference to an array can be dereferenced to an array: for my $item ( @$locations ){ # $item references each hash in the list if( $item->{location_id} == 9999000000000027 ){ $item->{location_status} = 'true'; } } -- __END__ Just my 0.00000002 million dollars worth, --- Shawn "For the things we have to learn before we can do them, we learn by doing them." Aristotle * Perl tutorials at http://perlmonks.org/?node=Tutorials * A searchable perldoc is at http://perldoc.perl.org/ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>