in reply to override CORE sub and keep method in same package

A method is just a sub in the class' package. So importing an overridden sub must conflict with a method of same name.

But I don't really understand your intention (or better mistrust the idea)

If you want to make sure that the original built-in is called use CORE::select, if you need a different select better name it select2 or new::select and change the source accordingly.

update

the only way I can think of is to delete all subs with name select and to use AUTOLOAD to try to distinguish if its called as a method or a built-in (the first argument is blessed)

update

AUTOLOAD is even not necessary, write your own select to check the caller and switch accordingly.

If it's called within the package/module delegate to your pseudo-built-in otherwise call the method.

Cheers Rolf

( addicted to the Perl Programming Language)