Are quotes around hash keys a good practice in Perl?

后端 未结 13 2005
伪装坚强ぢ
伪装坚强ぢ 2020-12-03 06:24

Is it a good idea to quote keys when using a hash in Perl?

I am working on an extremely large legacy Perl code base and trying to adopt a lot of the best practices s

相关标签:
13条回答
  • 2020-12-03 07:29

    I prefer to go without quotes, unless I want some string interpolation. And then I use double quotes. I liken it to literal numbers. Perl would really allow you to do the following:

    $achoo['1']  = 'kleenex';
    $achoo['14'] = 'hankies';
    

    But nobody does that. And it doesn't help with clarity, simply because we add two more characters to type. Just like sometimes we specifically want slot #3 in an array, sometimes we want the PATH entry out of %ENV. Single-quoting it add no clarity as far as I'm concerned.

    The way Perl parses code makes it impossible to use other types of "bare words" in a hash index.

    Try

    $myhash{shift}
    

    and you're only going to get the item stored in the hash under the 'shift' key, you have to do this

    $myhash{shift()}
    

    in order to specify that you want the first argument to index your hash.

    In addition, I use jEdit, the ONLY visual editor (that I've seen--besides emacs) that allows you total control over highlighting. So it's doubly clear to me. Anything looking like the former gets KEYWORD3 ($myhash) + SYMBOL ({) + LITERAL2 (shift) + SYMBOL (}) if there is a paranthesis before the closing curly it gets KEYWORD3 + SYMBOL + KEYWORD1 + SYMBOL (()}). Plus I'll likely format it like this as well:

    $myhash{ shift() }
    
    0 讨论(0)
提交回复
热议问题