How do I determine the number of elements in an array reference? How do I determine the number of elements in an array reference? json json

How do I determine the number of elements in an array reference?


That would be:

scalar(@{$perl_scalar});

You can get more information from perlreftut.

You can copy your referenced array to a normal one like this:

my @array = @{$perl_scalar};

But before that you should check whether the $perl_scalar is really referencing an array, with ref:

if (ref($perl_scalar) eq "ARRAY") {  my @array = @{$perl_scalar};  # ...}

Update

The length method cannot be used to calculate length of arrays, it's for getting the length of the strings.


$num_of_hashes = @{$perl_scalar};

Since you're assigning to a scalar, the dereferenced array is evaluated in a scalar context to the number of elements.

If you need to force scalar context then do as KARASZI says and use the scalar function.


You can also use the last index of the array to calculate the number of elements in the array.

my $length = $#{$perl_scalar} + 1;