snip - Perl Codeschnipsel

Peter J. Holzer hjp at wsr.ac.at
Mon Nov 22 04:02:10 CST 1999


On 1999-11-20 11:14:48 +0100, Roland Bauer wrote:
> Converting a string to uppercase
> 
>    Angenommen, man möchte folgenden String auf Großbuchstaben umwandeln:
>    
>         $_ = "teststring";
> 
>    ACHTUNG: Umlaute werden nicht berücksichtigt ...

Das sollte rein theoretisch gehen, wenn man 

use locale;

verwendet (und das System locales unterstützt und die entsprechenden
Environment-Variablen gesetzt sind).

Allerdings funktioniert es bei mir weder unter Redhat Linux 6.0 noch
unter HP-UX 10.20 - in C-Programmen aber schon :-(

>         tr/a-z/A-Z/;

Bei Ranges hat man allerdings immer das Problem, daß man dann wissen
muß, welcher Zeichensatz verwendet wird. Obiges funktioniert nur in
ASCII. In POSIX-Regexps gibt es eine (ziemlich häßliche) Syntax für
Character-Classes, z.B.:

grep '[[:upper:]][[:lower:][:digit:]]'

gibt alle Zeilen aus, in denen ein Großbuchstabe von einem
Kleinbuchstaben oder einer Ziffer gefolgt wird. 

So etwas scheint es in Perl nicht zu geben.

>    Not recommended ...
>    
>         s/[a-z]/uc $&/eg;

Wie wär's mit
	s/.*/\U$&\E/;

	hp

-- 
   _  | Peter J. Holzer             | Nobody should ever have to be
|_|_) | Sysadmin WSR / Obmann LUGA  | ashamed if they have a secret love
| |   | hjp at wsr.ac.at               | for writing computer programs that
__/   | http://wsrx.wsr.ac.at/~hjp/ | actually work.  -- Donald E. Knuth
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 371 bytes
Desc: not available
Url : http://mail.pm.org/archives/vienna-pm/attachments/19991122/a78d9c19/attachment.bin


More information about the Vienna-pm mailing list