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

Firstly, thanks for your response, much appreciated =).
could you please elaborate? I don't understand the question ...

I'm referring to this %{{f}} code which creates a transient hash (which keys can then operate on) from a hash reference. Perhaps I'm not using the jargon correctly, my apologies.

I don't know of more elegant ways to do this in other languages to be honest. I was hoping that it were possible to create a transient hash more directly with something like  keys %(f) for example.

Creating a helper routine which hides this away or adjusting the f() routine to return a hash reference would both work, but the former sacrifices the brevity I'm after and the latter may not always be feasible.
keys HASH operates on the datatype hash not list, which means something starting with a % sigil here
Do you know if there's a reason that it can't operate on a list?

Replies are listed 'Best First'.
Re^3: Using 'keys' on a list
by LanX (Saint) on Jun 29, 2021 at 15:03 UTC
    > Do you know if there's a reason that it can't operate on a list?

    Lists are the most basic containers in perl syntax but not a variable's data type.

    A list is not necessarily a hash, you can have odd numbers and dupplicate keys or irregular "keys"

    Keys would also be more vulnerable to syntax errors.

    Many other languages don't even know how to handle lists.

    But you're free to implement the workarounds I've shown you.

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