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>


Reply via email to