Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: import not found

by tilly (Archbishop)
on Jan 27, 2011 at 15:18 UTC ( #884577=note: print w/replies, xml ) Need Help??


in reply to import not found

Exporter does not inject a function, instead you inherit from it and the method call to import is supposed to resolve. When you call Project::Config::import(qw(foo bar)); you're not making a method call, so you don't search your inheritance tree and find Exporter. Change that line to Project::Config->import(qwfoo bar)); and things should improve.

Incidentally most things people do with AUTOLOAD are better done by other means. (In my experience, usually by assigning a bunch of closures to functions into the current package.) AUTOLOAD is a sledgehammer that can make code more brittle than it should be. With no context I don't know whether that is true in your case.

Replies are listed 'Best First'.
Re^2: import not found
by ikegami (Pope) on Jan 27, 2011 at 16:45 UTC

    Exporter does not inject a function

    It does if you use

    use Exporter qw( import );

    instead of

    use Exporter qw( ); our @ISA = 'Exporter';

    But you still need to call it as a method.

Re^2: import not found
by rovf (Priest) on Jan 27, 2011 at 15:48 UTC
    Thanks a lot for the explanation!
    AUTOLOAD is a sledgehammer that can make code more brittle than it should be. With no context I don't know whether that is true in your case.
    I start to believe that it is true in my case...


    -- 
    Ronald Fischer <ynnor@mm.st>
      Incidentally a random tip. If you want Exporter to inject a function into your space you can
      use Exporter qw(import);
      rather than inheriting from Exporter.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://884577]
help
Chatterbox?
[Eily]: I just wrote a oneliner to solve a (non perl) colleague's problem, and it worked on the first try
[Eily]: and he wasn't impressed
1nickt adds gingersnaps to the platter on the sideboard.
[Eily]: sure it was a pretty standard one liner (of the $h{$1} = $2 if /regex/; END { pp \%h; } variety), but he's not supposed to know that!
[Eily]: what's the point of writing perl if people aren't impressed :P

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (10)
As of 2017-04-26 15:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I'm a fool:











    Results (482 votes). Check out past polls.