in reply to Re^4: Default import function
in thread Default import function

It doesn't work as you think!

An import method is defined in UNIVERSAL.pm, but that file is not loaded unless it is explicitly requested as use UNIVERSAL; which is very rare practice.

So, how does Perl handle the import method in modules not defining it?

It is a special case:

/* excerpt from gv.c in the perl source code */ if (!gv) { if (strEQ(name,"import") || strEQ(name,"unimport")) gv = MUTABLE_GV(&PL_sv_yes); else if (autoload) gv = gv_autoload_pvn( ostash, name, nend - name, GV_AUTOLOAD_ISMETHOD|flags ); if (!gv && do_croak) { /* Right now this is exclusively for the benefit of S_method_c +ommon in pp_hot.c */
when in a method call the requested method can not be resolved, perl checks if it is actually import (or unimport) and in that case, the call is just ignored.