Perl で納得いかないこと

たとえばこんなの。

use strict;

my %a = ();
my $key = "abc";
$a{key} = "def";

$key のつもりで key と書いてしまってもエラーにならない。警告も出ない。リテラル 'key' だと解釈されてしまう。これは困る。なんでクォーテーションがないのにリテラルになってしまうんだ。ぜんぜん strict じゃないと思うぞ。