in reply to Re: Looping through an array of hashes
in thread Looping through an array of hashes

A slight change lets me get all keys for any array of hashes. I added the sort just for fun.

use strict; use warnings; my $people = [ { 'firstname' => ' InReach', 'companyid' => 1042, 'type' => 'client', 'lastname' => 'IT Solutions', 'id' => 1498, 'companyname' => 'InReach IT Solutions' }, { 'firstname' => ' Neil', 'companyid' => 1589, 'type' => 'client', 'lastname' => 'Ssmith', 'id' => 3132, 'companyname' => 'White Staffing Management' }, { 'firstname' => 'Zeeshan', 'companyid' => 1867, 'type' => 'client', 'lastname' => 'Jones', 'id' => 4174, 'companyname' => 'Staff247' }, { 'firstname' => 'Alex', 'companyid' => 1867, 'type' => 'client', 'lastname' => 'Jones', 'id' => 4175, 'companyname' => 'Staff248' }, ]; foreach my $hash (@$people){ print_hash ($hash); } print '*'x79, "\n"; #sort by lastname then firstname foreach my $hash (sort { $a->{lastname} cmp $b->{lastname} or $a->{fir +stname} cmp $b->{firstname} } @$people) { print_hash ($hash); } sub print_hash { my $hr = shift; print "\n"; foreach my $key (keys %$hr){ printf "%11s: %s\n", $key, $hr->{$key}; } }