in reply to Re: Help, how do I print out to an html file, not the .pl page
in thread Help, how do I print out to an html file, not the .pl page

Okay, I'll try to explain in more detail. This script takes user input to select a month and year. Then it reads 4 data files to see if they have entries for that month. All of the entries/or no data messages are then written out into tables according to which data file it came from. Right now, I am writing it all out to the .pl page. Which is in the cgi-bin directory. However, I would like the output to go someplace up a few directory levels, onto an html page. The print statements are scattered all over the place. Is there a way to say only one time that all output should go to www.???.???. Like, will what you told me before work if I just open the file at the beginning and close it at the end? I read something about predeclaring print statements, but don't get it. This is new to me, against my will, (and, I am a dummy). Thanks for your help.
  • Comment on Re: Re: Help, how do I print out to an html file, not the .pl page

Replies are listed 'Best First'.
Re: Re: Re: Help, how do I print out to an html file, not the .pl page
by astanley (Beadle) on Apr 17, 2001 at 19:52 UTC
    OK I think I understand it a little better now...and yes what I mentioned will work if you open the file at the beginning of the code, and close it before it ends. I think what you are referring to when you say predeclaring print statements is using the 'select' function. This prevents you from having to specify on every print line the filehandle you wish to output to. If you decide to choose that you can do something like this:
    #!/usr/bin/perl open(HTMLFILE, ">your/html/file.here"); select(HTMLFILE); #....do some things with CGI input here print "This goes in your HTML file\n"; #....do some other things if necessary print "So does this\n"; close HTMLFILE;
    Your alternative is not to use the select statement...which would look like this:
    #!/usr/bin/perl open(HTMLFILE, ">your/html/file.here"); #....do some things with CGI input here print HTMLFILE "This goes in your HTML file\n"; #....do some other things if necessary print HTMLFILE "So does this\n"; close HTMLFILE;

    -Adam Stanley
    Nethosters, Inc.
      Thank you so much. It is working, and I am using the print HTMLFILE each time. I did try it the other way and wound up with just a blank screen.
      Thank you, it is working now. I thought I already sent this message, but didn't see it appear. Anyway, I am using the print HTMLFILE with each print line. The other way did something, but all I saw was a blank screen. You guys are great. Wish I had known this place existed before, when I was really pulling my hair out.