Why didn't you complain about the following not working?
my %hash = (k1, v1, k2, v2, k3, v3);
The difference between $hash{k1} and @hash{k1,k2,k3} is the difference between the use the comma operator ((k1,k2,k3)) and the use of a hash element lookup ($h{k}), not between one and many keys.
The comma operator does not autoquote.
The ability to differentiate between functions calls and string literals is valuable, and what you suggested would remove that ability
print(k1, k2, k3);
could mean
print('k1', k2(), 'k3');
and there'd be no easy way to find out. You specifically requested to prevent this kind of ambiguity using use strict.
In some cases, omitting the quotes is deemed unambiguous. That would not be the case for the comma operator's operands.
In reply to Re: Unquoted hash slice keys with use strict 'subs'
by ikegami
in thread Unquoted hash slice keys with use strict 'subs'
by cdarke
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |