#! /usr/bin/env perl use strict; use warnings; use 5.010; sub my_dumper1 { require Data::Dumper; my @dumps; my $trenner = "\n#-----------------\n\n"; while ( my ( $name, $ref ) = splice( @_, 0, 2 ) ) { push @dumps, Data::Dumper->Dump( [$ref], [$name]); } warn join $trenner, @dumps, ""; } sub my_dumper2 { require Data::Dumper; my %args = @_; my @names = keys %args; my @refs = values %args; my $dump = Data::Dumper->Dump( \@refs, \@names ); my $trenner = "\n#-----------------\n\n"; $dump =~ s/;\s*$/;$trenner/mg; warn $dump; } my $foo = [ qw( an array ) ]; my $bar = { a => "hash" }; warn "Variante 1\n"; my_dumper1( 'foo' => $foo, '*bar' => $bar ); warn "Variante 2\n"; my_dumper2( 'foo' => $foo, '*bar' => $bar );