#!/usr/bin/perl use strict; use warnings; my %dienste=( "z" => { "y" => { "x" => { "fields" => { "a" => { "order" => "03", "content" => "n" }, "b" => { "order" => "02", "content" => "u" }, "c" => { "order" => "01", "content" => "h" }, "d" => { "order" => "04", "content" => "d" } } } } } ); my $hashref = $dienste{z}->{y}->{x}->{fields}; my @sorted = sort{$hashref->{$a}->{order} <=> $hashref->{$b}->{order} }keys %$hashref; for my $key(@sorted){ print sprintf "%s -- %s\n",$hashref->{$key}->{order}, $hashref->{$key}->{content}; }