Re: why can't I collapse reference variables?

[email protected] (Vlado Keselj) Mon, 30 Nov 2009 07:18:59 -0400 (AST)
Newsgroups perl.scripts
Message-ID <[email protected]>

On Fri, 27 Nov 2009, Mark_Galeck wrote:

> Hello, the following question I posted on perl.beginners but for a few
> days there is no response, so maybe it is not a beginners question?
> Nah, it must be :)

I cannot provide brief explanations, but this may help:

> --------------------------------
> If I can do this:
> 
> $ref = \@foobar;
> print @$ref;
> 
> then why can't I do this:
> 
> print @\@foobar;

use: print @{ \@foobar };

It seems to work.

> ------------------------------------
> I have this kind of problem often, let me give another example, I
> think it is similar, let me know if not.
> 
> Why are all the printouts different:
> 
> @foobar = ();
> print \@foobar;  #prints as reference to ARRAY

This is OK.

> 
> $foobar = \();
> print $foobar;  # prints as reference to SCALAR

use: $foobar = []; print $foobar;

and you get the output as before.

> print \();  #prints as array of references to SCALAR, in this case
> empty array

use: print [];

For creating a reference to a literal array, use: [1, 2, 3] instead of 
\(1,2,3)

Cheers,
--Vlado