Syntactic Confectionery Delight PerlMonks

### Re^8: Array/List Strangeness

by Taulmarill (Deacon)
 on Aug 05, 2009 at 13:29 UTC ( #786110=note: print w/replies, xml ) Need Help??

in reply to Re^7: Array/List Strangeness

I admit that i might have misunderstood something here .... although i'm not sure what....

Could we from now on agree not to talk about (non)existing array elements, but about elements <= \$#array and elements > \$#array. That might make things easier for my twisted, sleep deprived mind.

update: also i'd like \$[ to stay 0.

Replies are listed 'Best First'.
Re^9: Array/List Strangeness
by LanX (Bishop) on Aug 05, 2009 at 16:28 UTC
Could we from now on agree not to talk about (non)existing array elements,

Well we have an exists function, why shouldn't we talk about (non)existing array elements? :-)

Existence is an an important point to describe the behaviors of slicing, i.e. mostly returning undef for non-existing elements. (And I think what ikegami meant)

Let's express it in LRTs (Lanx's Rule of Thumb ;-)

1. Arrayslices (and hashslices) always return values for all requested elements. Not existing elements are represented as 'undef'.

```  DB<1> @a=1..2

DB<2> x @a[0,1]
0  1
1  2
DB<3> x @a[0,3]
0  1
1  undef
DB<4> x @a[2,3]
0  undef
1  undef
DB<5> @a=()

DB<6> x @a[1,2]
0  undef
1  undef
2. Listlices work alike if and only if at least one of the requested elements exists. Otherwise it returns an empty list.

```  DB<5> x (1,2)[0,1]
0  1
1  2
DB<6> x (1,2)[0,3]
0  1
1  undef
DB<7> x (1,2)[2,3]                # DIFFERENT!
empty array
DB<8> x ()[0..3]                  # DIFFERENT!
empty array
DB<9> x (undef,undef)[0,2]
0  undef
1  undef

Note: Maybe the x command in the debugger should better say "empty list" instead of "empty array"....

Please correct me if I missed something with this "model" of slice behavior.

Cheers Rolf

Create A New User
Node Status?
node history
Node Type: note [id://786110]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2018-06-17 22:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Should cpanminus be part of the standard Perl release?

Results (107 votes). Check out past polls.

Notices?