Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^2: Creating packages on the fly

by Jouke (Curate)
on Jun 06, 2006 at 09:01 UTC ( #553768=note: print w/ replies, xml ) Need Help??


in reply to Re: Creating packages on the fly
in thread Creating packages on the fly

I may be overlooking something, but how does that create packages that the code doesn't know about yet on the fly?

Maybe I need to be clearer:

Wx provides Wx::Window. Let's say that I'm going to use the namespace Jouke:: and my Wx::Window subclass would become Jouke::Wx::Window. I don't want to have a predefined list of classes I want to subclass under Jouke::, but whenever the main program calls Jouke::Wx::Window->new() it should be able to identify if Wx::Window->new can be called, and if so, subclass it as Jouke::Wx::Window, and add functionality to it.

The only part I'm having trouble with, is having a mechanism that catches every call to Jouke::Foo->whatever_method() without having to define Jouke::Foo in advance.



Jouke Visser
Using Perl to enable the disabled: pVoice


Comment on Re^2: Creating packages on the fly
Re^3: Creating packages on the fly
by vkon (Curate) on Jun 06, 2006 at 09:28 UTC
    you're right, Jouke::Foo->whatever_method() isn't covered in my example.

    Here is one that do:

    sub UNIVERSAL::AUTOLOAD { print STDERR "[[@_]]"; } package main; Jouke::Foo->whatever_method();
    outputs
    D:\TESTS\tperl>perl -w autocr.pl [[Jouke::Foo]]

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (14)
As of 2015-07-02 18:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (44 votes), past polls