Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: Writing Modules/namespace polution

by tlm (Prior)
on Mar 17, 2005 at 01:39 UTC ( #440230=note: print w/replies, xml ) Need Help??

in reply to Writing Modules/namespace polution

Study the following short program and its output:

use strict; sub Foo::bar { print 'called on line ', (caller)[2], ": $_[0]\n" and $_[0]; } my $frobozz = bless \&Foo::bar, 'Foo'; $frobozz->bar('eenie'); $frobozz->bar('eenie')->('meenie'); $frobozz->('eenie'); Foo->bar('eenie'); Foo->bar('eenie')->bar('meenie'); Foo::bar('eenie'); 'Foo'->bar('eenie'); 'Foo::bar'->('eenie'); "Foo'bar"->('eenie'); # Perl trivia # bar('eenie'); # bombs! require Exporter; @Foo::ISA = ('Exporter'); @Foo::EXPORT_OK = ('bar'); Foo->import('bar'); bar('eenie'); __END__
Make sure you understand why each output line is generated (except the one corresponding to the code line marked as "Perl trivia"--that one's optional), and why un-commenting out the line that begins with # bar causes a run-time error. If, after you work through it, something still doesn't make sense, ask.

Note! The above is certainly not an example of good coding. Its only purpose is to illustrate some aspects of Perl.

the lowliest monk

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2020-02-28 16:23 GMT
Find Nodes?
    Voting Booth?
    What numbers are you going to focus on primarily in 2020?

    Results (124 votes). Check out past polls.