#! /usr/bin/env perl use strict; use warnings; use 5.020; use Data::Dumper; use Storable qw( dclone ); sub _dump { my ( $name, $object ) = @_; say Data::Dumper->new( [ $object ], [ "*$name" ], )->Sortkeys(1) ->Useqq(1) ->Dump(); } my $original = { sub1 => { sub2 => { foo => 'bar' }, }, }; my $tiefe_kopie = dclone($original); my $einfache_kopie = {}; %$einfache_kopie = %$original; $tiefe_kopie->{sub1}{sub2}{foo} = "neu"; say "# Vergleich nach Ă„nderung Tiefe Kopie"; _dump( 'Original' => $original ); _dump( 'Tiefe_Kopie' => $tiefe_kopie ); $einfache_kopie->{sub1}{sub2}{foo} = "hier stand mal bar"; say "# Vergleich nach Ă„nderung einfache Kopie"; _dump( 'Original' => $original ); _dump( 'Einfache_Kopie' => $einfache_kopie );