#!/usr/bin/perl use strict; use warnings; use 5.010; my $test1 = ['Birne','Apfel']; my @test2 = ('Fred','Anna'); my %test3 = (foo => 'bar',abc => 'def'); my $test4 = 'string'; my @uebergabe = ( 0, 1, 2, [$test1,\@test2,\%test3,\$test4], ); aufruf(\@uebergabe); sub aufruf { my ($ref) = @_; if (defined $ref->[3] && ref($ref->[3]) eq 'ARRAY') { require Data::Dumper; local $Data::Dumper::Useqq; $Data::Dumper::Useqq = 1; local $Data::Dumper::Sortkeys; $Data::Dumper::Sortkeys = sub { my ($hash) = @_; return [(sort {$a =~ /^\d+$/ && $b =~ /^\d+$/ ? $a <=> $b : lc($a) cmp lc($b)} keys %$hash)]; }; foreach my $keyref (@{$ref->[3]}) { say Data::Dumper::Dumper($keyref); # hier weiß ich nicht, dass die test1, test2 usw. heißen } } }