[Cologne-pm] Brauche mal ne schnelle Hilfe zu Umlauten

Michael Lamertz mike at lamertz.net
Tue Feb 3 05:27:11 CST 2004


On Tue, Feb 03, 2004 at 11:43:54AM +0100, Bernd Bornhausen wrote:
> Hallo zusammen,
> 
> die Frage die ich stelle ist ja schon fast peinlich, aber irgendwie will
> mein Hirn keine rechte Antwort darauf finden:

Jaja, die Sache mit dem Hirn...  Das passiert mir auch andauernd.  Sind
aber auch kleine Mistdinger, die Hirne... ;-)

> ich muss mehreren Dateien ü,ä,ö,ß gegen ue,ae,oe,ss austauschen,also
> wird mal schnell jede Datei an ein Perl script übergeben ausgelesen, und
> dann zeilenweise geschaut, ob dort die Umlaute drin sind, wenn ja
> schnell austauschen die Zeile schreiben und fertig, wenn kein Umlaut in
> der Zeile, dann einfach nur die Zeile schreiben.
> Alles kein Problem, bis auf das mit den Umlauten *g*.
> Irgendwie will das System keine ü??s oder so als erlaubte Zeichenfolge
> anerkennen.
> Hat jemand ne Idee ???

Yepp:

our %map = (
    'ä' => 'ae', 'Ä' => 'Ae',
    'ö' => 'oe', 'Ö' => 'Oe',
    'ü' => 'ue', 'Ü' => 'Ue',
    'ß' => 'ss',
);

# Das hier geht leider nicht in einem Schritt, da qr ein Quote-Operator
# ist, und darin zwar Variablen, aber leider kein Code interpoliert
# wird:
our $umlauts = '[' . join('', keys %uml) . ']';
$umlauts = qr($umlauts);

while (<>) {
    s/($umlauts)/$map{$1}/ge;
    print;
}


Btw:  Version 0.1 sah so aus:

    s/(.)/$map{$1} || $1/ge

Benchmark.pm ist unser Freund:

    ---------- snip ----------
    tweety:~$ ./umlauts
               Rate anychar  targeted
    anychar  65.2/s       --     -91%
    targeted  741/s    1036%       --
    tweety:~$
    ---------- snip ----------

Whoa!  Faktor 10.  Da werde ich mich doch nicht ueber eine Variable mehr
aufregen :)


Mike

-- 
	    Well, then let's give that Java-Wussie a beating... (me)

Michael Lamertz                        |     +49 2234 204947 / +49 171 6900 310
Sandstr. 122                           |                       mike at lamertz.net
50226 Frechen                          |                 http://www.lamertz.net
Germany                                |               http://www.perl-ronin.de 



More information about the Cologne-pm mailing list