Values beginning with the array @ and hash % sigils are passed by reference, i.e. under the default bindings: @array->join(', ') @{ ... }->length() %hash->keys() %$hash->values() are equivalent to: ARRAY::join(\@array, ', ') ARRAY::length(\@{ ... }) HASH::keys(\%hash) HASH::values(\%$hash)