in reply to Compile Time Checking of Subroutine Calls is Possible After All

Except that you don't get proper OO lookup/inheritance. I suppose if all you're doing is regular procedural stuff, it works OK. You could try B::Lint, which for this program:

use strict; my $flag = shift; sub hello { return "hello by reference\n" } print xello() if $flag;

prints this diagnostic:

$ perl -MO=Lint,all blint.pl Undefined subroutine xello called at blint.pl line 4 blint.pl syntax OK