1) By param I meant a key=value paramater passed to your script via CGI (I'm assuming this is cgi). These come in two forms, a "post" type, and your script reads those via STDIN and "get" types, which come after the question mark in the url. CGI.pm decodes both of these and gives you the value(s) with the method "param". Note that if there are any "posted" paramaters, CGI.pm will only return those when you call param, it will ignore any params in the "get" request.
#incoming url = script.cgi?foo=bar&baz=qux
my $c = CGI->new();
print $c->param('foo'); #prints bar
print $c->param('baz'); #prints qux
2) Uh, I guess. Thats an implementation issue, doesn't really matter.