Abfrage von Sonderzeichen in Perl

Jan-Benedict Glaw jbglaw at lug-owl.de
Sun Jul 24 23:10:28 CEST 2005


On Sat, 2005-07-23 18:34:28 +0200, Frank Matthieß <frankm at lug-owl.de> wrote:
> ich habe hier die Herausforderung ein Perlscript zu schreiben. 

Herausforderung.  Sehr interpretations-offen :-)

> Nun stehe ich vor dem Problem in einem utf-8 String die Zeichenklasse 
> [äÄöÖüÜß] testen zu wollen um dann anschließend den String mit Base64 zu
> encodieren.
> 
> Das encodieren klappt soweit, aber der Test geht nicht.
> 
> if ( $display =~ /<???>/ ) {
> 	...hier base64 encoding...
> } else {
> 	...hier keine encodierung...
> }
> 
> Nun würde ich gerne wissen was ich statt <???> schreiben muss.

Mit "$foo =~ /bar/" kann man gucken, ob bar in $foo enthalten ist,
right? UTF-8 ist ja nur eine Kodierung; ich vermute mal, daß, wenn Du
das Perl-Script in einem uxterm (oder auf der Console nach
'unicode_start') eingibst, da, wo ein Umlaut zu finden ist, dann die
entsprechende Multibyte-Sequenz stehen wird. Perl weiß dann zwar nicht,
daß es sich um einen Umlaut handelt, aber es sollte die murkelige
Bytefolge dennoch match'en können. Also

if (	   $display =~ /ä/
	|| $display =~ /Ä/
	|| $display .....) {
	base64_stuff;
} else {
	non_base64_stuff;
}

Die ODER-Verknüpfung könnte in Perl natürlich anders aussehen :)
Wichtig sollte nur sein, daß Du das in einem Unicode-Terminal eintippst.
Aber es gibt da sicherlich noch schönere Varianten...

MfG, JBG

-- 
Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481             _ O _
"Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg  _ _ O
 fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!   O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lug-owl.de/pipermail/linux/attachments/20050724/4b06581c/attachment.sig>


More information about the Linux mailing list