my (%argv,@param); if ($ENV{'REQUEST_METHOD'} eq 'GET') {   @param = split /&/, $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {   read(STDIN, my $env, $ENV{'CONTENT_LENGTH'});   @param = split /&/, $env; } foreach (@param) {   my ($name,$value) = split /=/, $_;   $name  =~ tr/+/ /;   $name  =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;   $value =~ tr/+/ /;   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;   # untaint name and value   next unless $name =~ /^(\w+)$/;   $name = $1;   next unless $value =~ /^([a-zA-Z_0-9 ]+)$/;   $argv{$name} = $1; } # hier habe ich die Betriebssysteme definiert. my %os = (   Linux => [ 'SuSE', 'Red Hat', 'Debian', 'Mandrake' ],   Windows => [ 'WIN95', 'WIN98', 'WINME', 'WINXP' ] );