For Programmers: Free Programming Magazines  


Home > Archive > PERL Beginners > December 2005 > A question about modules









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author A question about modules
Robert

2005-12-15, 9:55 pm

I have broken out my DB connection calls into a small module. It isn't
anything fancy so it is basically:

package DBConn

use strict;
use warnings;

sub { # connection info for db1 }

sub { # connection info for DB2 }

sub { # connection info for db3 }

1;

The question is do I go through the formal process of creating a module for
everything (I use Module::Starter) or is it okay to do something like the
above for very small modules?

Robert



Robert

2005-12-16, 9:55 pm

I simply use:

my $dbh = DBConn::db1();

It does the right connection (i.e. subroutine) from the DBConn package and I
didn't use Exporter. I should also mention that DBConn is in the same folder
and the calling script so maybe that makes a difference.

I am probably going to go back and do a proper module of it so I can get in
the "habit" of doing so.

Robert

<vmalik@engmail.uwaterloo.ca> wrote in message
news:1134746776.43a2dc984c445@www.nexusmail.uwaterloo.ca...
> It is okay to do something like that. However, you should not use the
> package
> declaration on the top. If you do that, you will have to use the Exporter
> module
> to export your subroutine names to your script when you say "use DBConn;"
>
> Quoting Robert <sigzero@gmail.com>:
>
>
>
>
>
> ----------------------------------------
> This mail sent through www.mywaterloo.ca



Shawn Corey

2005-12-17, 6:57 pm

Robert wrote:
> I simply use:
>
> my $dbh = DBConn::db1();
>
> It does the right connection (i.e. subroutine) from the DBConn package and I
> didn't use Exporter. I should also mention that DBConn is in the same folder
> and the calling script so maybe that makes a difference.


No, it doesn't. You can mix packages in any manner you like throughout
your modules. Whether you should ...

>
> I am probably going to go back and do a proper module of it so I can get in
> the "habit" of doing so.


If you want to make a proper module out of it, separate it into three,
one for each connection. Then add (to each) a close connection
subroutine, a commit, and a rollback. Change the names so that they are
more descriptive of the data.

Always write your code as though you won't see it for 25 years and then
have to change it yesterday.


--

Just my 0.00000002 million dollars worth,
--- Shawn

"Probability is now one. Any problems that are left are your own."
SS Heart of Gold, _The Hitchhiker's Guide to the Galaxy_
Vishal Malik

2005-12-17, 6:57 pm

I see. That's fine then. I didn't know that you were using the package
name as a prefix to the subroutine name (DBConn::). In that case you
don't need to use the Exporter. You only need it if you want to use the
the subroutines as if they were in the current package (for example,
db1(), and not DBConn::db1()).

Vishal


Robert wrote:

>I simply use:
>
>my $dbh = DBConn::db1();
>
>It does the right connection (i.e. subroutine) from the DBConn package and I
>didn't use Exporter. I should also mention that DBConn is in the same folder
>and the calling script so maybe that makes a difference.
>
>I am probably going to go back and do a proper module of it so I can get in
>the "habit" of doing so.
>
>Robert
>
><vmalik@engmail.uwaterloo.ca> wrote in message
>news:1134746776.43a2dc984c445@www.nexusmail.uwaterloo.ca...
>
>
>
>
>
>
>

________________________________________
__________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com