my $verschiebung = 2; my $text = "Dies ist ein Text"; my $ctext = 'Fkgu kuv gkp Vgzv'; #print Dumper( mod($text, $verschiebung, 1) ); print Dumper( mod($ctext, $verschiebung, 1) ); sub mod { my $text = shift; my $verschiebung = shift; my $escape_s = shift; my $data = []; my $erg_p = undef; my $erg_n = undef; foreach( split//, $text ) { if( $escape_s && $_ =~ /\s/ ){ $erg_p .= $_; $erg_n .= $_; }else { push @{$data}, {$_ => { ord($_) => [chr(ord($_)+$verschiebung), chr(ord($_)-$verschiebung)] } }; $erg_p .= chr(ord($_)+$verschiebung); $erg_n .= chr(ord($_)-$verschiebung); } } return $erg_p, $erg_n, $data || 0; } # /encrypt