strict will throw out undefined/misspelt variables, but subroutines are left to be found at run-time (except for barewords).
I agree that strict should do this, but it doesn't.
| [reply] [d/l] [select] |
$ perl -MO=Lint -wce 'foo( );'
Nonexistant subroutine 'foo' called at -e line 1
-e syntax OK
The cake is a lie.
The cake is a lie.
The cake is a lie.
| [reply] [d/l] |
B::Lint only considers main (at least by default), which doesn't quite fit with an Object approach.
As with use strict, I am surprised that there isn't something more built-in to cover the horribly common case of misspelling a subroutine name -- especially as the error can lie dormant in a little used part of one's code !
If use strict covered it, or if B::Lint was easier to use and could be specified within packages, then this module would be redundant....
In the meantime, I've found it useful and the reason for this posting is to see if other people would too.
| [reply] [d/l] [select] |