$hash_value = { '75.34.42.17511726663' => { # '1995' => [ '', '200,000' ], # Duplicate key, # overwritten by next line '1995' => [ '', '200,000' ], '1996' => [ '3.3', '206,680' ], '1997' => [ '2.6', '212,118' ], '1998' => [ '3.7', '219,980' ], '1999' => [ '4.2', '229,281' ], '2000' => [ '7.7', '247,015' ], '2001' => [ '6.7', '263,645' ], '2002' => [ '7.6', '283,665' ], '2003' => [ '5.4', '298,857' ], '2004' => [ '9.2', '326,345' ], '2005' => [ '11.5', '363,842' ], '2006' => [ '9.4', '398,148' ], } }; # To sort year from the hash @year= sort {$a cmp $b} keys(%{$hash_value->{'75.34.42.17511726663'}}); # To do stuff with structure - year ascending order format. my @foo_stuff; foreach $key (@year) { push @foo_stuff, Foo( $hash_value->{'75.34.42.17511726663'}{$key} ); } sub Foo { return @$_[0]; }