http://www.perlmonks.org?node_id=304073


in reply to Re: Re: Using a subroutine as a module
in thread Using a subroutine as a module

Egads, far too many uses of OO are superfluous and/or ill advised already and now you want OO for simple library calls. Just use fully qualified package names:

#### MyMod.pm package MyMod; sub foo { "whatever" } 1; ### calling script #!/usr/bin/perl -w use strict; use MyMod; print MyMod::foo();

Replies are listed 'Best First'.
Re: Re: Re: Re: Using a subroutine as a module
by bobn (Chaplain) on Nov 03, 2003 at 15:43 UTC

    Sorry, I disagree. Modularization of code is desirable. IMHO, using a dummy object to acheive this is more valid than fully qualifying the calls for the following reasons:

    • Typically, less typing, as filenames tend to be longer han variable names (in my world, at least)

    • greater flexibility - if you decide to relocate something in the filesystem, you change only your 'use' and 'new' statments, not everyplace the calls are made.

    • "future-proofing" - as the user gains sophisitication, he or she can more easily modify the modules, or create new ones that inherit from the existing. Exporting or fully qualifying can defeat that.

    • "future-proofing" - on the day when the user suddenly wants to set instance data for his routines, he or she is ready.

    Besides, fully qualified calls just look ugly to me, though I suppose it's safer than trusting multiple modules not to stomp on each other or your own functions. Using object methods are also fully qualified.

    --Bob Niederman, http://bob-n.com

    All code given here is UNTESTED unless otherwise stated.