in reply to Misspelled subroutine name -- no way to catch it at compile time? C'mon.

Its not a matter of how often people write it: The syntax allows it, so its not a syntax error. This has a deeper meaning than you think - because it is not possible to detect this problem unless in the scope of an execution. Consider this:

my $name = 'est'; *{$name} = sub { print "hello\n"; }; est();

Even if strict is on, who is to say the assignment of the glob doesn't happen under the scope of no strict 'refs';? You could argue that anything you don't personally use... should be a syntax error?