Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^3: A Simple Question From A Simple Man

by Athanasius (Abbot)
on Oct 14, 2012 at 03:37 UTC ( #998910=note: print w/ replies, xml ) Need Help??


in reply to Re^2: A Simple Question From A Simple Man
in thread A Simple Question From A Simple Man

No, an array reference is a scalar:

my @array = ('Matthew', 'Mark', 'Luke', 'John'); my $array_ref = \@array; my @new_array = @{ $array_ref }; print join(', ', @new_array);

Here, @array is an array, as indicated by the “@” sigil, and $array_ref is a scalar, as per the “$” sigil. The syntax @{ ... } takes an array reference (which must be a scalar), and dereferences it to get the array it references.

Here is something to meditate on: In Perl, an array can contain any number of elements, but each element must be a scalar. So, to make complex data structures (like N-dimensional arrays or arrays of hashes) you need some way of getting non-scalars (arrays or hashes) to act as scalars so they can be elements in the larger array. Which is where references come in: they are scalars which can be used to access other things, and those other things can be non-scalars.

In addition to the reading recommendations given above by other monks, you might want to check out the Monastery’s tutorial intro to references.

Hope that helps,

Athanasius <°(((><contra mundum


Comment on Re^3: A Simple Question From A Simple Man
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2015-07-04 23:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls