Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: @array elements multiplication with another array elements.

by AnomalousMonk (Abbot)
on Nov 03, 2012 at 16:20 UTC ( #1002115=note: print w/ replies, xml ) Need Help??


in reply to Re: @array elements multiplication with another array elements.
in thread @array elements multiplication with another array elements.

$#arr returns a zero indexed length of items list $#arr = 3

I think it is fundamentally misleading to refer to what  $#array returns as a "length". Rather, I would say it is the highest index of the array, and depends on what the $ARRAY_BASE special variable (aka $[ – see perlvar) has been set to (but don't do that!).


Comment on Re^2: @array elements multiplication with another array elements.
Select or Download Code
Re^3: @array elements multiplication with another array elements.
by Don Coyote (Monk) on Nov 04, 2012 at 12:31 UTC

    Thanks Anomolous, point noted. I should also reflect that it is not truly the map operator that is using the $#arr construct to obtain the highest array index as such, rather it is being used by the .. range operator. As map expects a list of some description to work with after the modifiying operation. In this case we give the list in scalar context of a range, much like the for iterator, so perl goes ah yah, this is some funky for loop right, and cooly proceeds.

    I will now look into how the $ARRAY_BASE special variable affects the $# variable. I would not have thought a difference would be made, being as the highest index of an array is always going to be the highest index? (unless $[ is set higher perhaps... hmm...).

    *Footsteps echo quietly away as Coyote trundles off into the dark echoing corridors of the echosome vaults.

      I will now look into how the $ARRAY_BASE special variable affects the $# variable.

      By all means investigate the-special-variable-whose-name-must-not-be-written to learn its heterodoxy, but never use this impious and odious monstrosity lest your script be shunned throughout all lands and ages, and your name be cursed by maintainers.

      >perl -wMstrict -le "$[ = 654; my @ra = 0 .. 12; print $#ra; " Use of assignment to $[ is deprecated at -e line 1. 666

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (8)
As of 2014-12-25 19:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (162 votes), past polls