I'm assuming the 1 is the return code for "all good!".
No, it's the number of elements in the array. Just like
my $num_ele = @array; gives the number of elements in array,
my $num_ele = @{$array_ref}; gives the number of elements in the referenced array,
"foo @array bar" means ("foo " . join($", @array) . " bar"), so
"foo @{$array_ref} bar" means ("foo " . join($", @{$array_ref}) . " bar")
How would I assign the scalar the value of the array?
Assigning an array to a scalar makes no sense. A scalar can hold the length of an array, an element of an array, or a reference to an array, but not an array.
Your currently doing the first and you already have a reference to the array, so I presume you want to assign an element of the array. More specifically, I'm going to assume you want to assign the first element of the array.
To copy the first element, you'd do
$ele = $array[0];
for an array and therefore
$ele = ${$array_ref}[0];
for an array reference. Of you could use the cleaner alternate syntax
$ele = $array_ref->[0];
I'm not completely up on references/dereferences and was hoping you monks could assist me.
Useful references:
Dereferencing Syntax
References Quick Reference
Update: Minor cleanup. Added the references.
In reply to Re: Dereferencing arrays
by ikegami
in thread Dereferencing arrays
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |