Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
A little experimentation reveals that perl throws syntax errors even before compilation really begins (or, at least before BEGIN blocks

No. You show me your experiement and I'll show you mine. ;) Heck, I'll show you mine anyway:

BEGIN { warn "Compiled first line of script"; } ....
gives
Compiled first line of script at - line 1. syntax error at - line 2, near "..."
or
use CGI::Carp qw( fatalsToBrowser ); ....
gives
Content-type: text/html <H1>Software error:</H1> <CODE>syntax error at - line 2, near &quot;...&quot; Execution of - aborted due to compilation errors. </C0DE> <P> For help, please send mail to this site's webmaster, giving this error + message and the time and date of the error. [Wed Apr 9 11:36:09 2003] -: syntax error at - line 2, near "..." [Wed Apr 9 11:36:09 2003] -: Execution of - aborted due to compilatio +n errors.

Syntax errors in code that appears before the use CGI::Carp line will not be caught. For many CGI scripts, this boils down to just the #! line. But as pointed out elsewhere in this thread, CGI::Application was being used and the CGI::Carp was being used in the wrong place for it to take affect soon enough.

Perl code is compiled one-statement-at-a-time and so-called "compile-time" constructs get executed right after the statment they are contained in has been compiled. So there is no single "compile time" nor a single "run time". So each statement has one compile time and zero or more run times.

Things like BEGIN and use cause statements' run times to happen sooner while things like eval cause statements' compile times to happen later.

                - tye

In reply to Re^4: use CGI::Carp qw(fatalsToBrowser); (is compile-time) by tye
in thread use CGI::Carp qw(fatalsToBrowser); by Heidegger

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2021-12-06 04:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    R or B?



    Results (31 votes). Check out past polls.

    Notices?