routine [ ]

Documentation for routine [ ] assembled from the following types:

language documentation Operators

From Operators

(Operators) circumfix [ ]

The Array constructor returns an itemized Array that does not flatten in list context. Check this:

say .perl for [3,2,[1,0]]; # OUTPUT: «3␤2␤$[1, 0]␤» 

This array is itemized, in the sense that every element constitutes an item, as shown by the $ preceding the last element of the array, the (list) item contextualizer.

The output will be (almost) the same if we attempt to flatten it using | a. k. a. the flattener, which puts it in a list context:

say .perl for | 3,2,[1,0]; # OUTPUT: «3␤2␤[1, 0]␤» 

language documentation Operators

From Operators

(Operators) postcircumfix [ ]

sub postcircumfix:<[ ]>(@container**@index,
                        :$k:$v:$kv:$p:$exists:$delete)

Universal interface for positional access to zero or more elements of a @container, a.k.a. "array indexing operator".

my @alphabet = 'a' .. 'z';
say @alphabet[0];                   # OUTPUT: «a␤» 
say @alphabet[1];                   # OUTPUT: «b␤» 
say @alphabet[*-1];                 # OUTPUT: «z␤» 
say @alphabet[100]:exists;          # OUTPUT: «False␤» 
say @alphabet[1541711].join;  # OUTPUT: «perl␤» 
say @alphabet[23 .. *].perl;        # OUTPUT: «("x", "y", "z")␤» 
 
@alphabet[12= "B""C";
say @alphabet[0..3].perl            # OUTPUT: «("a", "B", "C", "d")␤» 

See Subscripts, for a more detailed explanation of this operator's behavior and for how to implement support for it in custom types.