my $ausgabe; my $chr; sub test { chomp( my $text = "-. .-- -." ); # schliessendes " ergaenzt # woher kommt $input? koennte es auch $text sein? foreach( split(/[^\.|\-]+/, $input) ) { # hier wird ein eigenes $chr als Laufvariable definiert; das ist unabhaengig vom Aeusseren! foreach my $chr ( keys %mcode ) { print $chr if( $mcode{$chr} eq $_ ); #<= hier soll $chr in eine Variable außerhalb der Sub gespeichert werden # $chr ist die Laufvariable der inneren schleife; damit kommst Du # so an die auessere Variable $chr nicht mehr ran... # Benenne die Laufvariable um und weise der aeusseren $chr den # Wert zu, wenn es notwendig ist. } } } $ausgabe = $chr;