For sure someone else will answer you about the cookies, but, please tell me:
- Wy do you use local here? I think you want to use lexical variables here and those are declared with the my keyword.
- Why did you prefix your subroutine calls with the & sigil? Are these subroutines prototyped and you want to avoid the prototype checks? write_cookies isn't prototyped so you should drop the &. It serves no useful purpose.
Also, I try not to have variables inside my subroutines that are not passed in as parameters, unless it are really and truly global variables:
sub write_cookies{
my ($username, $password, $regtype, $expires) = @_;
print "Set-Cookie: reguser=$username; expires=$expires; path=/;\n
+";
print "Set-Cookie: regpass=$password; expires=$expires; path=/;\n
+";
print "Set-Cookie: regtype=$regtype; expires=$expires; path=/;\n"
+;
}
And then call the sub as follows:
write_cookies($username, $password, $regtype, calc_cookie_expires(-1))
+;
CountZero
A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James
My blog:
Imperial Deltronics