in reply to Re: @forminputs annoying error
in thread @forminputs annoying error

thanks but i think i found my mistake.... i have this line... print<<"EOT"; .... couple of html codes here .... EOT; -> this is the error it should be EOT only. but it does'nt make sense, PERL display's an error which is somehow not related to the real error. thanks anyway

Replies are listed 'Best First'.
RE: RE: Re: @forminputs annoying error
by BBQ (Curate) on May 09, 2000 at 08:12 UTC
    Beleive me when I say that it probably makes sense. 99% of the times that I catch myself saying things like "Stupid machine, its not supposed to!", I'll be biting my tongue later on with a big Homer Simpson "DOH!". Perl isn't tricky, its just flexible. Once you get past that stage then you'll be laughing at your own mistakes and making a habit of runnin -c.

    In the meanwhile... Each person has his/her own method of defining HTML, but I like doing the following:
    my $variables = '1 2 3'; my @arrays = (4, 5, 6); my $html = qq{ <html> <head> <!-- your head stuff --> </head> <body etc, et al> More stuff with <font face="Verdana, Arial, Sans-Serif">$variables and + @arrays</font> and things of the sort. </body> </html> }; print $html;
    I rarely use { or } characters in my HTML, and even if I do, they are usually in Javascript or CSS which get imported as .js or .css files, so I never have to worry about literalizing(?) any special characters. I hope that helps as a future suggestion.

    #!/home/bbq/bin/perl
    # Trust no1!
RE: RE: Re: @forminputs annoying error
by httptech (Chaplain) on May 09, 2000 at 15:35 UTC
    Sometimes that extra semicolon can really mess you up...

    You must have had another EOT somewhere in the file, because it should have given you one of these: Can't find string terminator "EOT" anywhere before EOF at ... So between the first terminating EOT and the second terminating EOT you had the @forminputs variable and perl thought you wanted to print the variable name along with all the other code in between.

    That's why it's helpful to give your here-document labels different names each time, like:

    print <<EOT1; EOT1 print << EOT2; EOT2
    That way if you accidentally put a semicolon on the end of one you'll immediately know where to look because you'll get the error above instead of some other crazy errors.