Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re^2: Things I Don't Use in Perl

by skx (Parson)
on Aug 24, 2005 at 11:14 UTC ( #486153=note: print w/replies, xml ) Need Help??

in reply to Re: Things I Don't Use in Perl
in thread Things I Don't Use in Perl

I can see the argument against using Singletons just as global variables.

But in many circumstances they are useful. The most obvious two situations I use them are in:

  • Log objects.
  • Database handles.

Passing a database handle to all methods, or to multiple objects gets sloppy fast - but having a single resource to fetch it from is neat.

Similarly with debug files; although they are sometimes abused when you realise you need more than one logfile...


Replies are listed 'Best First'.
Re^3: Things I Don't Use in Perl
by exussum0 (Vicar) on Aug 24, 2005 at 19:43 UTC
    I can easily think of two situations where those have driven me MAD.

    I need to connect to a different dateabase than I used to for party of an application. I have to change which variable names I'm using to use the right database.

    I wrote one app, where it had a kernel so to speak, w/ a logger attached. Creating a new kernel would create a second running copy of everything, 'cept the logger, 'cause it was a singleton. Grrr!

    Don't privatize your constructors! If I want a shared object, good, if not, it's just as good. The only thing I ever want globals are things like, numbers. 1 only has one value. 1!

    Give me strength for today.. I will not talk it away..
    Just for a moment.. It will burn through the clouds.. and shine down on me.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (2)
As of 2021-06-14 03:36 GMT
Find Nodes?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)

    Results (60 votes). Check out past polls.