Calocybe: uppercase2lowercase und viceversa

Beitrag lesen

Hi!

$string = "<TAG>hallo</TAG>";
for(split(//,$string)) { (/[a-z]/) ? ($output .= uc) : ($output .= lc); }
print $output; # <tag>HALLO</tag>

Ja, funktioniert aber nur, wenn auch garantiert ist, dass vorher genau der invertierte Fall vom Wunschergebnis vorliegt. Ein Ausgangswert von "<Tag>Hallo</Tag>" wuerde jedoch zu "<tAG>hALLO</tAG>" konvertiert werden.

Schlage daher folgendes vor:

#!/usr/bin/perl -w

$string = "<TAG>hallo</TAG>";

$string = uc($string);                  # all to upper case
$string =~ s/(<.*?>)/lc($1)/eg;         # <tags> to lower case

print $string;

Bye, Calocybe