Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Oi vey... It's spelled notation, not notion (synonym for naming or naming convention)... guess spelling errors aren't exactly program bugs... but regardless, definitely not caused by anything in 5.6.14. Still, In the manpage for module::runtime, it documents naming related changed affecting modules between 5.8->5.10 5.10->5.12 5.12->5.14. If one doesn't catch you...
Core bugs worked around [Note -- change from 5.10 -> 5.12 ] The first bug worked around is core bug [perl #68590], which ca +uses lexical state in one file to leak into another that is "require"d/"use"d from it. This bug is present from Perl 5.6 u +p to Perl 5.10, and is fixed in Perl 5.11.0. From Perl 5.9.4 up to +Perl 5.10.0 no satisfactory workaround is possible in pure Perl. Th +e workaround means that modules loaded via this module don't suff +er this pollution of their lexical state. Modules loaded in other ways +, or via this module on the Perl versions where the pure Perl workaround + is impossible, remain vulnerable. The module Lexical::SealRequire +Hints provides a complete workaround for this bug. [Note change from 5.8 - > 5.10] The second bug worked around causes some kinds of failure in mo +dule loading, principally compilation errors in the loaded module, t +o be recorded in %INC as if they were successful, so later attempts +to load the same module immediately indicate success. This bug is pres +ent up to Perl 5.8.9, and is fixed in Perl 5.9.0. The workaround mean +s that a compilation error in a module loaded via this module won't be c +ached as a success. Modules loaded in other ways remain liable to produ +ce bogus %INC entries, and if a bogus entry exists then it will mislead +this module if it is used to re-attempt loading. [Note change from 5.12->5.14] The third bug worked around causes the wrong context to be seen + at file scope of a loaded module, if "require" is invoked in a location + that inherits context from a higher scope. This bug is present up t +o Perl 5.11.2, and is fixed in Perl 5.11.3. The workaround means that + a module loaded via this module will always see the correct conte +xt. Modules loaded in other ways remain vulnerable.
I don't see it being a far stretch to think 5.14 isn't perfect after all that -- or, especially, that those changes broke programs that may have *unknowingly* been affected by them.

In fact, From the above, it looks like major changes are in for 5.18 as well.

FWIW, After fixing the spelling error in my program, I now get the errors I got in response ^5:

> cnvWav2Flac Global symbol "$Filename2Fields" requires explicit package name at ./c +nvWav2Flac line 119. Global symbol "$Filename2Fields" requires explicit package name at ./c +nvWav2Flac line 127. Global symbol "$Filename2Fields" requires explicit package name at ./c +nvWav2Flac line 133. Global symbol "$Filename2Fields" requires explicit package name at ./c +nvWav2Flac line 137. Global symbol "$Filename2Fields" requires explicit package name at ./c +nvWav2Flac line 141. Global symbol "$Filename2Fields" requires explicit package name at ./c +nvWav2Flac line 145. Use of uninitialized value at ./cnvWav2Flac line 153.
At this point, it looks like exporting vars just doesn't work right, as it isn't saying it's not defined --- and it should be imported, as I use Debug, and it is has the ISA line for Exporter, and the EXPORTS line for Filename2Fields -- with 'use', there is no need for a Begin block -- so it should be working...

At this point I need to go look at the code some more, I still see no reason why Exporter isn't exporting the varname?...

Thanks for a *helpful* post... a 2nd set of eyes is 75% of the reason I come here, having written in perl for over a decade...it's not like I hven't heard arguments about why one should do XYZY, but it's not how I want to design, and the language claims to allow otherwise, so I'm on the limits.../edge (in more ways than one)...

-pd


In reply to Re^14: can't import using exporter by perl-diddler
in thread can't import using exporter by perl-diddler

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 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?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2024-04-25 17:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found