Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^3: About inheritence ? and Autoload ?

by kyle (Abbot)
on Nov 25, 2009 at 13:24 UTC ( #809335=note: print w/ replies, xml ) Need Help??


in reply to Re^2: About inheritence ? and Autoload ?
in thread About inheritence ? and Autoload ?

If you want to use the current package as the base name of some other package, you could do something like this:

my $subpackage = __PACKAGE__ . '::Command'; my $test_command = $subpackage->new(@ARGV);

You could also make a module that installs this behavior into every package. Here's a demonstration:

sub UNIVERSAL::subpackage { join '::', @_ } package Foo::Command; sub wow { print "I am: ", __PACKAGE__, "\n" } package Foo; sub check { __PACKAGE__->subpackage( 'Command' )->wow() } package main; Foo->check(); __END__ I am: Foo::Command

In Real Code, you'd put the sub UNIVERSAL::subpackage part into another module which you then use from every package that you want to have that behavior. While "__PACKAGE__->method( 'Blah' )" is a lot longer than just "Blah", it also carries a bit more meaning.

Is that closer to what you want?


Comment on Re^3: About inheritence ? and Autoload ?
Select or Download Code
Re^4: About inheritence ? and Autoload ?
by lepetitalbert (Monsignor) on Nov 25, 2009 at 16:36 UTC

    Hi again,

    pajout, I think I was (am) confused about namespace and inheritance. Thanks for your precisions,

    kyle, that's definitivly exactly what I was lookin for \o/

    Thank you all.

    Have a nice day.


    "There is only one good, namely knowledge, and only one evil, namely ignorance." Socrates

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (11)
As of 2015-07-06 12:51 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 (74 votes), past polls