Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

What's the best way to share code in different files?

by aeshirey (Initiate)
on Mar 26, 2002 at 19:38 UTC ( #154497=perlquestion: print w/ replies, xml ) Need Help??
aeshirey has asked for the wisdom of the Perl Monks concerning the following question:

I'm working on some web-based scripts that do a bit of file manipulation. While I can't combine them, I'd like for them to be able to share some of the same functionality.

In the first file I've made, I've reduced the complexity such that it simply calls a subroutine that does the work. All I would need to do now is run this subroutine for the other files, passing a single scalar to the subroutine.

I'm a bit of a newb, so talk of modules and such will be over my head, but what's the best way to share code between different scripts, allowing for the passing of variables?

Comment on What's the best way to share code in different files?
Re: What's the best way to share code in different files?
by Util (Priest) on Mar 26, 2002 at 22:48 UTC

    Like it or not, modules are the best way. Modules need not be difficult; you probably need only a small fraction of the many options available to a module author. To get started, see tachyon's Simple Module Tutorial, including the other monks' comments at the bottom. If the tutorial is too simple, try perlman:perlmod. If too complex, try my skeleton code below. I have pared it down to the bare essentials for illustration only; it runs correctly, but is missing the seat-belts (use strict) and air-bags (use warnings), so don't take it out of the parking lot!

    Use h2xs -n Common_Code -AX to generate a real module template once you are more comfortable with how a module works.

    # this is in file Common_Code.pm package Common_Code; sub log_debug_message { print "DEBUG: I see ", join(", ", @_), ".\n"; } 1;
    Here's a script which uses it:
    #!/usr/bin/perl use Common_Code; my( $a1, $b2, $c3 ) = qw( red blue green ); Common_Code::log_debug_message( $a1, $b2, $c3 );
    The output:
    DEBUG: I see red, blue, green.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2014-09-18 00:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (101 votes), past polls