#!/usr/local/bin/perl # this is the code for sever.pl, my mini-server my @lines; open(FILE1, $ARGV[0]); while () { push(@lines, $_); } ($method, $url, $proto) = split(/ /, $lines[0]); if ($method ne "GET") { if ($method ne "POST") { msg(400); } } if ($proto ne "HTTP/1.0") { msg(400); #here's where sub msg doesn't work } if ($method eq "POST") { open(FILE2, $ARGV[1]); while () { $ENV{'REQUEST_QUERYSTRING'} = $_; } print "the querystring is: $ENV{'REQUEST_QUERYSTRING'}\n"; @q_string = split (/&/, $ENV{'REQUEST_QUERYSTRING'}); foreach $pair (@q_string) { my @temp = split (/=/, $pair); $param{$temp[0]} = $temp[1]; print "$temp[0] = $param{$temp[0]}\n"; } } %msgs = ("200", "OK", "400", "Bad Request", "403", "Forbidden", "404", "Not Found", "500", "Internal Server Error"); msg(400); #here's where sub msg works sub msg { $msg_num = @_[0]; $msg_txt = "$msg_num $msgs{$msg_num}"; print "HTTP/1.0 $msg_txt\n"; }