> Wiggins d Anconia wrote:
> >>I have a number of functions in a program I'm writing that return a
> > 
> > reference to 
> > 
> >>an array or hash. In the functions, I declare the variable to return
> > 
> > with 'my' 
> > 
> >>which I'm finding out is bad. Should I declare variables to return
from a 
> >>function with 'our'? Do I need to make sure I don't have conflicting
> > 
> > variable 
> > 
> >>names from other functions? What pitfalls do I need to know about when
> > 
> > doing this?
> > 
> > 
> > Need to address why you think creating them with 'my' is bad when
> > returning them first, it isn't (as long as you are truly returning
> > them).  Use 'my' until you know you don't :-).
> > 
> > See if this helps:
> > 
> > http://perl.plover.com/FAQs/Namespaces.html
> > 
> > It is *well* worth the read...
> 
> I think that 'my' is bad because I have something similar to:
> 
> my %tree;
> 
> sub return_an_arrayref() {
>    my @array = ('thing1', 'thing2', 'thing3');
>    return [EMAIL PROTECTED];
> }
> 
> sub build_tree() {
>    foreach(@thing) {
>      $tree{$_} = return_an_arrayref();
>    }
> }
> 
> use Data::Dumper;
> print Dumper(%tree);
> 
> The output shows a bunch of empty arrays or arrays with all undef
elements under 
> each key in %tree. I know return_an_arrayref() is returning data
because I can 
> print all the elements out in build_tree().
> 

Ah, turn on strict and warnings. See if that helps, if not come back
:-).  This is why these two pragma are so critical.

For me your code will not run.

http://danconia.org


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to