in reply to Re^3: Using 'keys' on a list
in thread Using 'keys' on a list

I understand that there's no list datatype - that perhaps it is used shorthand for something which can be evaluated in list context, but how can I reconcile this with the fact that subroutines return lists? Is it more correct to say that subroutines return a sequence of comma operators?

Replies are listed 'Best First'.
Re^5: Using 'keys' on a list
by LanX (Saint) on Jun 29, 2021 at 19:29 UTC
    I have to disagree with brother Choroba, Lists exist...

    ... but as temporary stack entries and not as allocated variables.

    So something like %h = @a (theoretically ) means:

    • push all array elements on a stack
    • read all stack elements into a hash
    (that's simplified, because optimization might kick in)

    There is also dedicated syntax for lists, like

    • () for empty list
    • (...)[n] for nth list element
    • , as list constructor (but only in list context)
    Update

    What you actually want is a list of pairs which doesn't exist in Perl, but in some other languages, like Raku afaik.

    Otherwise it's totally ambiguous to tell what keys LIST is supposed to mean, if LIST was a @array.

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery

Re^5: Using 'keys' on a list
by Anonymous Monk on Jun 29, 2021 at 22:09 UTC