memnoch has asked for the wisdom of the Perl Monks concerning the following question:
Dear Monks,
The following code does not compile:
and produces the following output: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;
But if I put the "use Carp qw(croak);" statement after the package it does work: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.
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?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;
If someone could offer some insight as to what I'm not understanding, I'd really appreciate it.
Thank you,
memnoch
memnoch
Back to
Seekers of Perl Wisdom