use IO::Socket;$R="/tmp/";$P=1280;$A="HTTP/1.1 200 OK\nServer: PimpHTTPD\nConnection: close\n\n";$S=new IO::Socket::INET->new(Listen=>1,LocalPort=>$P)||die("Can't listen: $!");while($C=$S->accept()){while($D=<$C>){$F=$1 if($D=~/^GET\s+(\S+)/i);last if($D=~/^\r?\s*\r?$/);}$F=~s/%([0-9A-Fa-f][0-9A-Fa-f])/hex($1)/g;if($F=~/\.\.\//){$A="INVALID URL"}else{if(open(I,"<$R$F")){while(){$A.=$_;};close(I);}else{$A="$R$F:$!"}};print $C $A;$C->close;}