Unquoted Hash Keys
Perl offers many shortcuts that can help programmers. Here’s a handy one: you may omit the quote marks on some hash keys.
Of course, you can’t omit the quote marks on just any key, since a hash key may be any arbitrary string. But keys are often simple. If the hash key is made up of nothing but letters, digits, and underscores without starting with a digit, you may be able to omit the quote marks. This kind of simple string without quote marks is called a bareword, since it stands alone without quotes.
One place you are permitted to use this shortcut is the most
common place a hash key appears: in the curly braces of a hash element
reference. For example, instead of $score{"fred"}, you could write simply
$score{fred}. Since many hash keys
are simple like this, not using quotes is a real convenience. But
beware: if there’s anything inside the curly braces besides a bareword,
Perl will interpret it as an expression.
Another place where hash keys appear is when assigning an entire
hash using a list of key-value pairs. The big arrow (=>) is
especially useful between a key and a value because (again, only if the
key is a bareword) the big arrow quotes it for you:
# Hash containing bowling scores my %score = ( barney => 195, fred => 205, dino => 30, );
This is the one important difference between the big arrow and a comma; a bareword to the left of the big arrow is implicitly quoted. (Whatever is on the right is left alone, though.) You don’t have to use this feature of ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access