http://www.perlmonks.org?node_id=11104821


in reply to Re: Suggestion on rewriting small code
in thread Suggestion on rewriting small code

my $str = sprintf 'job==%d || 'x(@arr-1) . 'job==%d', @arr;

++ your solution, but just a minor point of curiosity: why use  @arr-1 instead of  $#arr here?


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^3: Suggestion on rewriting small code
by BillKSmith (Prior) on Aug 21, 2019 at 18:14 UTC
    I have adopted the convention of using $#... when I actually mean "index of the last element" and @... when I mean a "count" of elements. A very small advantage is that this does not depend on the default value of "$[". (I have not used that in since I got over my FORTRAN habits years ago)
    Bill
      ... when I mean a "count" of elements.

      Yeah, I guess the multiplier really is "one less than the number of array elements". Thank you for satisfying my curiosity.

      ... the default value of "$[".

      In Perl 5, changes | assignment to  $[ have | has been increasingly constrained over the years and in the most recent versions are | is completely disabled, but I still can't help thinking when I write something like  0 .. $#ra to list all possible indices of an array that I should perhaps really be writing  $[ .. $#ra instead.


      Give a man a fish:  <%-{-{-{-<