Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Re: Why was it neccessary to pass a DBI handler by reference?

by kudra (Vicar)
on Jan 28, 2004 at 16:21 UTC ( [id://324700]=note: print w/replies, xml ) Need Help??


in reply to Re: Why was it neccessary to pass a DBI handler by reference?
in thread Why was it neccessary to pass a DBI handler by reference?

Don't worry, your moon analogy is fine, but I already know the difference between a reference and a scalar value. My question has more to do with the peculiarities of DBI and why it doesn't act like I expect.

See this small example program:

use warnings; use strict; use Foo; use Bar; my $foo = new Foo; my $bar = new Bar($foo); $foo->x("from program"); print "(app) Memory: $foo, X: ".$foo->x()."\n"; $bar->show();
Foo.pm isn't very interesting:
package Foo; sub new { my $name = shift; bless { x => 'from Foo' }, $name; } sub x { my ($self, $arg) = @_; $$self{x} = $arg if ($arg); return $$self{x}; } 1;
And Bar.pm just stores some foo:
package Bar; sub new { my $name = shift; my $foo = shift; bless { foo => $foo }, $name; } sub show { my $self = shift; my $foo = $$self{foo}; print "(bar) Memory: $foo, X: ".$foo->x()."\n"; } 1;

This example is almost exactly like what I wanted to do, except that I'm using a makeshift module instead of DBI.

The results of the memory test will of course depend upon the execution, but both times the memory location is the same. That wouldn't happen after I 'forced a copy' by changing one of the values in $foo if I didn't have a reference.

I hope this clarifies my question.

Replies are listed 'Best First'.
Re: Re: Re: Why was it neccessary to pass a DBI handler by reference?
by neuroball (Pilgrim) on Jan 28, 2004 at 16:47 UTC

    Okay, now I understand your problem... but I have to say that I am totally out of my depth.

    I will put my head into some pods and see what happens...

    Nothing to see here but an emberassed monk... go on...

    /oliver/

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-03-19 03:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found