#! /usr/bin/env perl use strict; use warnings; use 5.010; use Data::Dumper; my %tc_artikel = ( '2111x10' => [ { 'artikel_nr' => 'AGI15030', 'bestand' => '3120.00', 'charge' => 'RSG' }, { 'artikel_nr' => 'AGI15030', 'bestand' => '3150.00', 'charge' => 'RSG' }, { 'artikel_nr' => 'AGI15030', 'bestand' => '3110.00', 'charge' => 'RSG' }, ], '2111x3' => [ { 'artikel_nr' => 'AGI15030', 'bestand' => '1450.00', 'charge' => 'Event Management' }, { 'artikel_nr' => 'AGI15030', 'bestand' => '1100.00', 'charge' => 'Event Management' }, ], ); # zeige den jeweils hoechsten Bestand an: for my $artikel_charge ( keys %tc_artikel ) { my $max = ( sort { $b->{bestand} <=> $a->{bestand} } @{ $tc_artikel{ $artikel_charge } } )[0]; # split wenn man artikel und charge id wieder separat braucht #my ( $art_id, $chg_id ) = split m{x}, $artikel_charge; say $artikel_charge, "\n", Dumper( $max ); } __END__