# Ler todas as variaveis CGI para dentro de um array associativo. # Se multiplos campos de entrada tiverem o mesmo nome, serao concatenados em # um elemento do array e delimitados com o caractere \0 (isso falha se # a entrada contiver algum caractere \0, muito improvavel mas # conceitualmente possivel). # Esta e' uma versao simples, que assume o metodo de solicitacao GET. sub getcgivars { local(%in) ; local($name, $value) ; # Resolver e decodificar os pares nome/valor em %in foreach (split('&', $ENV{'QUERY_STRING'})) { s/\+/ /g ; ($name, $value)= split('=', $_, 2) ; $name=~ s/%(..)/chr(hex($1))/ge ; $value=~ s/%(..)/chr(hex($1))/ge ; $in{$name}.= "\0" if defined($in{$name}) ; # concatenar multiplas vars $in{$name}.= $value ; } return %in ; }