Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re: Conditional statements in CGI/Div

by golux (Hermit)
on Jan 13, 2013 at 18:07 UTC ( #1013117=note: print w/replies, xml ) Need Help??

in reply to Conditional statements in CGI/Div

Hi slurch901,

Instead of putting the conditional inside the div(...) call, put it immediately afterwards (and start a separate print for the final $cgi->end_html()):

#!/usr/bin/perl -w use CGI; use CGI ":standard"; use CGI::Carp qw{ fatalsToBrowser }; $index = 0; $cgi = new CGI; print $cgi->header(), $cgi->start_html(), $cgi->div({-id=>pagewrap}); if($index==0) { print $cgi->p("Hello"), } print $cgi->end_html();

Notice that the code above has the very useful:

use CGI::Carp qw{ fatalsToBrowser };
This will cause many errors to display in the webpage itself, which is how I was able to see the error in my browser:
syntax error at /var/www/html/index.cgi line 10, near "if" Execution of /var/www/html/index.cgi aborted due to compilation errors +.
say  substr+lc crypt(qw $i3 SI$),4,5

Replies are listed 'Best First'.
Re^2: Conditional statements in CGI/Div
by slurch901 (Initiate) on Jan 13, 2013 at 21:18 UTC
    Thanks for the quick reply and the Carp statement, but if I do it the way you have done then $cgi->p("Hello") doesn't inherit the pagewrap div from the css as it's closing too early.

      Shouldn't you stop using CGI anyway? If you use something with MVC as CGI::Application or Catalyst you wouldn't have to bother with those details.

      Alceu Rodrigues de Freitas Junior
      "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1013117]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (8)
As of 2018-06-22 15:47 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (124 votes). Check out past polls.