Christian Kruse: Mit Perl den ASCII-Wert eines Zeichens ändern

Beitrag lesen

Hi,

also erstmal: das Posting war nicht ganz ernst gemeint ;)

$string =~ s/(.)/chr((ord($1) > 250 ord($1) < 5) ? (ord($1) > 250 ?  (ord($1) - 250) : (ord($1) + 250)) : (ord($1) - 5))/eg;

Mmh.. Du musst Dich schon entscheiden, ob Du nun 5 addieren oder subtrahieren willst.

hmpf, blöde Vorzeichenfehler... ich hab jetzt verquert gedacht, mit +5 und nicht -5 ;-)

also kann der Fall doch noch weiter vereinfacht werden:
$string =~ s/(.)/chr((ord($1) < 5) ? (ord($1) + 250)) : (ord($1) - 5))/eg;

Schade, es war so schön kompliziert ;-D

$string =~ s/(.)/chr((ord($1) + 256 - 5) & 0xFF)/eg;

oder eben so ;)

mfg
CK1