[Cologne-pm] Code-Review oder bin verwirrt
Christian Schneider
cschneid at spinfo.uni-koeln.de
Thu Jul 3 12:55:47 CDT 2003
Guten Tag zusammen,
ich bin gerade dabei mir den Quelltext einer blog-Software anzusehen
und bin verwirrt. Wer Lust hat, mag sich vielleicht mal die beiden
Code-Ausschnitte ansehen und mir sagen, daß ich mir gewisse
Perlkonstrukte doch noch mal genauer ansehen soll.
Grüße,
Christian
a) Ist es möglich, daß @dateplaced mehr als ein Element haben kann und
daß somit die for-Schleife Sinn macht?
($type,$dateplaced,$timeplaced,$a,$b,$c)=split(/\|/,$linemainbox);
if ($type eq "active"){
@dateplaced=$dateplaced;
for $eachone (@dateplaced){
($mon1,$day1,$year1)=split(/\./,$eachone);
}
}
b) Hier verstehe ich den Typeglob am Anfang nicht. fval wird doch nur
als array benutzt und das wird in der Zeile @fval = split(...) doch
explizit gefüllt (fval wird im restlichen Skript auch nicht mehr
benutzt und nein, der Autor benutzt kein strict). Was würde der
Typeglob hier denn überhaupt machen?
sub GetFormInput {
(*fval) = @_ if @_ ;
local ($buf);
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN,$buf,$ENV{'CONTENT_LENGTH'});
}
else {
$buf=$ENV{'QUERY_STRING'};
}
if ($buf eq "") {
return 0 ;
}
else {
@fval=split(/&/,$buf);
foreach $i (0 .. $#fval){
($name,$val)=split (/=/,$fval[$i],2);
$val=~tr/+/ /;
$val=~ s/%(..)/pack("c",hex($1))/ge;
$name=~tr/+/ /;
$name=~ s/%(..)/pack("c",hex($1))/ge;
if (!defined($field{$name})) {
$field{$name}=$val;
}
else {
$field{$name} .= "\0$val";
}
}
}
return 1;
}
More information about the Cologne-pm
mailing list