Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^2: can't import using exporter

by perl-diddler (Hermit)
on Mar 12, 2012 at 23:08 UTC ( #959203=note: print w/ replies, xml ) Need Help??


in reply to Re: can't import using exporter
in thread can't import using exporter

I've tried it with and without the sigils in both places -- it made no difference.

You will note that I have my exports in EXPORT, not EXPORT_OK -- so shouldn't that mean they are all exported by default?


Comment on Re^2: can't import using exporter
Re^3: can't import using exporter
by chromatic (Archbishop) on Mar 13, 2012 at 01:04 UTC
    ... shouldn't that mean they are all exported by default?

    Yes, it does.

    I've tried it with and without the sigils in both places -- it made no difference.

    Like I wrote, the lack of the BEGIN is tripping you too. Either wrap your imports in BEGIN blocks or extract these packages into separate files and use use.


    Improve your skills with Modern Perl: the free book.

      Okay... I commented out the Module stuff. I put in "BEGIN{import Debug;}"
      Then I get:
      Global symbol "$Filename2Fields" requires explicit package name at /Au +dio/scripts/cnvWav2Flac line 120. Global symbol "$Filename2Fields" requires explicit package name at /Au +dio/scripts/cnvWav2Flac line 128. Global symbol "$Filename2Fields" requires explicit package name at /Au +dio/scripts/cnvWav2Flac line 134. Global symbol "$Filename2Fields" requires explicit package name at /Au +dio/scripts/cnvWav2Flac line 138. Global symbol "$Filename2Fields" requires explicit package name at /Au +dio/scripts/cnvWav2Flac line 142. Global symbol "$Filename2Fields" requires explicit package name at /Au +dio/scripts/cnvWav2Flac line 146. Use of uninitialized value at /Audio/scripts/cnvWav2Flac line 154.
      Then I had a laugh when I thought, just, *maybe*, the @EXPORTS needs to be in BEGIN too...
      Global symbol "$abr" requires explicit package name at /Audio/scripts/ +cnvWav2Flac line 245. Global symbol "$cbr" requires explicit package name at /Audio/scripts/ +cnvWav2Flac line 245. Global symbol "$minbitrate" requires explicit package name at /Audio/s +cripts/cnvWav2Flac line 245. Global symbol "$preset" requires explicit package name at /Audio/scrip +ts/cnvWav2Flac line 245. Global symbol "$resample" requires explicit package name at /Audio/scr +ipts/cnvWav2Flac line 245. Global symbol "$lowpass" requires explicit package name at /Audio/scri +pts/cnvWav2Flac line 245. Global symbol "$downmix" requires explicit package name at /Audio/scri +pts/cnvWav2Flac line 245. Global symbol "$addid3v2" requires explicit package name at /Audio/scr +ipts/cnvWav2Flac line 245. Global symbol "$id3v2_only" requires explicit package name at /Audio/s +cripts/cnvWav2Flac line 245. Global symbol "$id3v2_only" requires explicit package name at /Audio/s +cripts/cnvWav2Flac line 245. Global symbol "%lame_vars_to_fields" requires explicit package name at + /Audio/scripts/cnvWav2Flac line 245. Global symbol "$best" requires explicit package name at /Audio/scripts +/cnvWav2Flac line 245. Global symbol "$catalog" requires explicit package name at /Audio/scri +pts/cnvWav2Flac line 245. Global symbol "$catalog_number" requires explicit package name at /Aud +io/scripts/cnvWav2Flac line 245. Global symbol "$CDDB" requires explicit package name at /Audio/scripts +/cnvWav2Flac line 245. Global symbol "$composer" requires explicit package name at /Audio/scr +ipts/cnvWav2Flac line 245. Global symbol "$discid" requires explicit package name at /Audio/scrip +ts/cnvWav2Flac line 245. Global symbol "$disc_number" requires explicit package name at /Audio/ +scripts/cnvWav2Flac line 245. Global symbol "$max_lpc_order" requires explicit package name at /Audi +o/scripts/cnvWav2Flac line 245. Global symbol "$exhaustive_model_search" requires explicit package nam +e at /Audio/scripts/cnvWav2Flac line 245. Global symbol "$qlp_coeff_precision_search" requires explicit package +name at /Audio/scripts/cnvWav2Flac line 245. Global symbol "$force" requires explicit package name at /Audio/script +s/cnvWav2Flac line 245. Global symbol "$replay_gain" requires explicit package name at /Audio/ +scripts/cnvWav2Flac line 245. Global symbol "$silent" requires explicit package name at /Audio/scrip +ts/cnvWav2Flac line 245. Global symbol "$totally_silent" requires explicit package name at /Aud +io/scripts/cnvWav2Flac line 245. Global symbol "$total_discs" requires explicit package name at /Audio/ +scripts/cnvWav2Flac line 245. Global symbol "$performer" requires explicit package name at /Audio/sc +ripts/cnvWav2Flac line 245. Global symbol "$publisher" requires explicit package name at /Audio/sc +ripts/cnvWav2Flac line 245. Global symbol "$best" requires explicit package name at /Audio/scripts +/cnvWav2Flac line 245. Global symbol "$exhaustive_model_search" requires explicit package nam +e at /Audio/scripts/cnvWav2Flac line 245. Global symbol "$replay_gain" requires explicit package name at /Audio/ +scripts/cnvWav2Flac line 245. Global symbol "$qlp_coeff_precision_search" requires explicit package +name at /Audio/scripts/cnvWav2Flac line 245. Global symbol "$totally_silent" requires explicit package name at /Aud +io/scripts/cnvWav2Flac line 245. Global symbol "$silent" requires explicit package name at /Audio/scrip +ts/cnvWav2Flac line 245. Global symbol "$force" requires explicit package name at /Audio/script +s/cnvWav2Flac line 245. Global symbol "$max_lpc_order" requires explicit package name at /Audi +o/scripts/cnvWav2Flac line 245. Global symbol "%flac_vars_to_fields" requires explicit package name at + /Audio/scripts/cnvWav2Flac line 245. Global symbol "$vp" requires explicit package name at /Audio/scripts/c +nvWav2Flac line 245. Global symbol "$vp" requires explicit package name at /Audio/scripts/c +nvWav2Flac line 245. Global symbol "$vp" requires explicit package name at /Audio/scripts/c +nvWav2Flac line 245. Global symbol "$name" requires explicit package name at /Audio/scripts +/cnvWav2Flac line 245. Global symbol "$op" requires explicit package name at /Audio/scripts/c +nvWav2Flac line 245. Global symbol "$data" requires explicit package name at /Audio/scripts +/cnvWav2Flac line 245. Global symbol "$op" requires explicit package name at /Audio/scripts/c +nvWav2Flac line 245. Global symbol "$vp" requires explicit package name at /Audio/scripts/c +nvWav2Flac line 396. Global symbol "$name" requires explicit package name at /Audio/scripts +/cnvWav2Flac line 396. Global symbol "$data" requires explicit package name at /Audio/scripts +/cnvWav2Flac line 396. Quantifier follows nothing in regex; marked by <-- HERE in m/? <-- HER +E :et/ at /Audio/scripts/cnvWav2Flac line 399.
      I guess NOT!! Just by putting the EXPORTS statement in 'Debug' in BEGIN blocks, I get all that?! How does that happen, and why line 245? Ick!... well if it isn't important we can ignore this mess... but if that's considered normal error output in 5.14.2, no probs here... ;-)

      BTW, the same error message happen if I take off the brackets following the package 'Debug', that enclose all of it's code. I put those around packages just to ensure their scope is local, but technically, the package statement should do that. But if I remove those brackets.. boom, same explosion as putting @EXPORTS in a BEGIN block, which, I don't think *should* be needed, (I *hope* not, or I have alot of errors to figure out! ), but when things you think are right don't work, you try 'other' things...

        You're doing this the hard way.

        Put each module in a separate file. Use use. Things will magically just work, because that's how they were designed to work.

        To make things work your way, you'll have to declare our variables outside of the BEGIN block and then, within a BEGIN block, assign to them. You're going to have a hard time getting things to work by randomly adding braces and blocks and little bits of syntax.

Re^3: can't import using exporter
by Anonymous Monk on Mar 13, 2012 at 04:46 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://959203]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (8)
As of 2014-07-29 22:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (229 votes), past polls