#!/usr/bin/perl use strict; use warnings; use 5.010; system 'cls'; my $test1 = ['Birne','Apfel']; my @test2 = ('Fred','Anna'); my %test3 = (foo => 'bar',abc => 'def'); my $test4 = 'string'; my %uebergabe = ( liste => [ [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 'Testtext', # [$test1,\@test2,\%test3,\$test4], [ '$test1' => $test1 ] ] ] ); my $env; meldung_machen($env,\%uebergabe); ############################################################################### ############################################################################### sub meldung_machen{ my ($env,$transp) = @_; foreach my $ref (@{$transp->{liste}}) { # Text setzen my $text = $ref->[9]; # Dump/-s im Text ergänzen if (defined $ref->[10] && ref($ref->[10]) 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 $args (@{$ref->[10]}) { #say $args; say "Zeile ".__LINE__.': '.Data::Dumper::Dumper($args); my @names = keys %$args; my @refs = values %$args; my $dump = Data::Dumper::Dump(\@refs,\@names); $dump =~ s/&/&/g; $dump =~ s//>/g; $dump =~ s/\n/
/g; $text .= "

Dump von xxx:\n
$dump
"; } } say $text; } }