Thread Unsaubere Programmierung?? (4 answers)
Opened by Yogi62 at 2010-12-15 19:12

Crian
 2010-12-16 08:31
#143626 #143626
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ich würde bei soetwas immer den String übergeben und mit local $_ arbeiten, dann musst du dich nicht darauf verlassen, dass in $_ das richtige steckt und deine Funktion hat nach Außen keinerlei Nebeneffekte.

Du gibst dann einfach $_ zurück. Also ungetestet:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   sub update {
local $_ = shift;

s/\xc4/Ä/g;
s/\xe4/ä/g;
s/\xd6/Ö/g;
s/\xf4/ö/g;
s/\xdc/Ü/g;
s/\xfc/ü/g;
s/\xdf/ß/g;
s/\x80/&euro/g;

return $_;
}


Ferner kannst du dir bei $_ den Vorspann bei s// sparen.

Der Aufruf sähe dann so aus:

Code: (dl )
   $foo = update($foo);



Außerdem scheint bei &euro noch ein Semikolon dahinter zu fehlen in der Ersetzung.
Last edited: 2010-12-16 08:33:33 +0100 (CET)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread Unsaubere Programmierung??