Take a look at the Email/Sendmail/Simple.pm . There is no sendmail routine in this program. Instead, if you look at the headline, you will see:
use Sub::Exporter -setup => { exports => { sendmail => Sub::Exporter::Util::curry_class('send'), try_to_sendmail => Sub::Exporter::Util::curry_class('try_to_send'), }, };
I am not familiar with Sub :: Exporter , but I noticed this description.
Sub :: Exporter's biggest advantage over existing exporters (including the ubiquitous Exporter.pm) is its ability to create new codewords for export, rather than just exporting the code identical to the one contained in the exporting package.
ABOUT...
Thus, the purpose of using Sub::Exporter is to export the names of routines that are not routines in your package.
If you're interested, you can read the Sub :: Exporter tutorial, but it seems like it has the ability to export subroutines under different names.
Thus, Email::Sender::Simple::sendmail not a subroutine, but sendmail can be exported.
source share