#!/usr/bin/perl use strict; use warnings; my @unsortiert = ( { name => 'alpha', sorter => 2, test => 'I', }, { name => 'beta', sorter => 1, test => 'II', }, ); my @sortiert; foreach my $tmp (sort {$a->{sorter} <=> $b->{sorter}} @unsortiert) { delete $tmp->{sorter}; push @sortiert,{%$tmp}; } use Data::Dumper; print Dumper(\@sortiert);