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