in reply to i got error cannot find string terminator "HTML" anywhere before EOF

  1. Do not use & when calling subroutines! Did you know &foo; doesn't call the foo subroutine without parameters, but rather calls it with the current parameter array @_? I bet not. Just drop the &.
  2. a here-doc has to end with the terminator you specified at the beginning. So if there was print <<"HTML"; at the begging, there must be HTML at the end. If there was print <<"END_OF_PRINT"; at the beginning, there would have to be END_OF_PRINT at the end.
  3. Please do not use the cgi-lib compatibility functions in new scripts. You should not know anything like that exists.
  4. .

Jenda
Enoch was right!
Enjoy the last years of Rome.