#!/usr/bin/perl use strict; use warnings; use Fcntl qw(:DEFAULT :flock); use Date::Calc; use Data::Dumper; local $Data::Dumper::Purity = 1; local $Data::Dumper::Useqq = 1; local $Data::Dumper::Deparse = 1; local $Data::Dumper::Sortkeys = sub { my ($hash) = @_; return [(sort {lc $a cmp lc $b} keys %$hash)]; }; use 5.010; my %code = ( testsub => sub{ my ($coderef,$irgendwasref,$io) = @_; say "zu Beginn: ".Dumper($io); my %tmp_io = %$io; say "innen vorher : ".Dumper($io); $tmp_io{verkn} = $io->{verkn}{unterschluessel}; say "innen nachher: ".Dumper($io); say "Kopie : ".Dumper(\%tmp_io); }, ); my %irgendwas = (schluessel => {unterschluessel => {unterunter => 7}}); my %start = ( foo => 2, verkn => $irgendwas{schluessel}, ); say "außen vorher : ".Dumper(\%start); $code{testsub}->(\%code,\%irgendwas,\%start); say "außen nachher: ".Dumper(\%start);