in reply to Subroutine References

Pretty much the exclusive domain of prototypes is to make a perl sub act like a builtin. Once you call it via $subref-> or &subname, you are no longer treating it as a builtin and prototypes are ignored.

Update: I second the recommendation that you read Tom's article. To make it brief, prototypes in perl5 don't do what prototypes in most other languages do, and weren't designed to. If you assume otherwise, you're in for grief.