Dear Monks,
The following code does not compile: use strict;
use warnings;
use Carp qw(croak);
package Test;
#use Carp qw(croak);
sub croak_test {
croak "this is a test";
}
Test::croak_test;
and produces the following output:
String found where operator expected at croaktest.pl line 8, near "cro
+ak "this is a test""
(Do you need to predeclare croak?)
syntax error at croaktest.pl line 8, near "croak "this is a test""
croaktest.pl had compilation errors.
But if I put the "use Carp qw(croak);" statement after the package it does work:
use strict;
use warnings;
#use Carp qw(croak);
package Test;
use Carp qw(croak);
sub croak_test {
croak "this is a test";
}
Test::croak_test;
I don't understand why the "use Carp qw(croak)" seemingly must be declared after the package, but the "use strict" doesn't. How could I determine what is necessary for other "use" statements? If someone could offer some insight as to what I'm not understanding, I'd really appreciate it.
-
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 How to display code and escape characters
are good places to start.
|