in reply to Re: Useless use of private variable
in thread Useless use of private variable

as I am using the value of $s as index number for array,
my $command = $CFG::CFG[$s]->{'CMD'}
using foreach I don't see any possibility if I want to iterate over my array? Any suggestion?? Cheers.

Replies are listed 'Best First'.
Re^3: Useless use of private variable
by Marshall (Canon) on Jul 15, 2009 at 04:40 UTC
    $s should be ok here. I suspect that $$p ( $$p=$$p-1;)could be the cause here? I'm not sure as I didn't get that error in my simple testing. I don't see much point in using a ref to $p. I would pass p itself, change this $$p line to $p--; and then return($p); at the end of the sub. I suppose its also possible that you did pass $p instead of \$p and this error message is a referencing error.

    Update: Looked again. $CFG::CFG[$s]->{'CMD'}; also looks a bit odd. I'd like to see some more code and explanation of what you think that this CFG data structure looks like. Maybe you intend an array of Hash? I'm not sure from this code. $CFG isn't defined anywhere that I can see. What I said above shouldn't actually matter from functionality or compile errors. If you are going to use a ref, passing a ref to this $CFG thing is the place. Normally passing a ref to a scalar is not necessary or desirable as Perl can return multiple lvalues.

    Update Again: I didn't see the missing $s=0 in the for loop. Even so this code sans $CFG::CFG[$s]->{'CMD'}; compiled and ran on my Perl 5.10 machine.