#!/usr/bin/perl use strict; use warnings; use utf8; my %german_chars = ( 'Ä' => 'Ae', 'Ö' => 'Oe', 'Ü' => 'Ue', 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss' ); #For each argument apply the conversions selected for my $old_name (@ARGV) { my $new_name = do_german($old_name); print "Old name: '$old_name'\nNew name: '$new_name'\n"; } #Replace German characters with their ASCII equivalent sub do_german { my $string = shift; #Replace all German characters in the given string my @string_array = split //, $string; foreach (@string_array) { print "###Before replacement### $_\n"; $_ = $german_chars{$_} if $german_chars{$_}; print "###After replacement ### $_\n"; } $string = join '',@string_array; return $string; } #### ./test.pl für_elise ###Before replacement### f ###After replacement ### f ###Before replacement### � ###After replacement ### � ###Before replacement### � ###After replacement ### � ###Before replacement### r ###After replacement ### r ###Before replacement### _ ###After replacement ### _ ###Before replacement### e ###After replacement ### e ###Before replacement### l ###After replacement ### l ###Before replacement### i ###After replacement ### i ###Before replacement### s ###After replacement ### s ###Before replacement### e ###After replacement ### e Old name: 'für_elise' New name: 'für_elise'