TheBulletDodger
MIS
Hi i am new to perl and have a section of code in a program i have inherited. can any one give the the general idea what it is doing? see the code below. TIA 
program{
local (*in)=@_if @_;
local ($i,$loc,$key,$val);
if($ENV{'REQUEST_METHOD'} eq "GET"){
$in=$ENV{'QUERY_STRING'};
}elseif($ENV{'REQUEST_METHOD'}eq"POST"){
read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
}
@in=split(/&/,$in);
foreach $i(0..$#in){
$in[$i]=~s/\+//g;
($key,$val)=split(/=/,$in[$i],2);
@key=~s/%(..)/pack("c",hex($1))/ge;
@val=~s/%(..)/pack("c",hex($1))/ge;
@in{$key}.="\0" if (defined($in{$key}));
@in{$key}.=$val;
}
return 1;
}
program{
local (*in)=@_if @_;
local ($i,$loc,$key,$val);
if($ENV{'REQUEST_METHOD'} eq "GET"){
$in=$ENV{'QUERY_STRING'};
}elseif($ENV{'REQUEST_METHOD'}eq"POST"){
read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
}
@in=split(/&/,$in);
foreach $i(0..$#in){
$in[$i]=~s/\+//g;
($key,$val)=split(/=/,$in[$i],2);
@key=~s/%(..)/pack("c",hex($1))/ge;
@val=~s/%(..)/pack("c",hex($1))/ge;
@in{$key}.="\0" if (defined($in{$key}));
@in{$key}.=$val;
}
return 1;
}