I am novice in perl. I have this sample code.
#! /usr/bin/perl
# Calcu.pm
package Calc;
sub add {
( $one , $two ) = @_;
$total = $one + $two;
return $total;
}
1;
&
#! /usr/bin/perl
# add.pl
use Calcu;
print Calcu::add(50, 60);
script add.pl is running fine. but I want to call the add method without mentioning its module name. I googled & added below lines in my Calcu.pm
use Exporter;
@ISA = (Exporter);
@EXPORT = qw (add);
& replace print Calcu::add(50, 60); with print add(50, 60); in add.pl but it is still giving me the below error.
Undefined subroutine &main::add called at add.pl
Is there any way possible so that I can directly call add subroutine in my ad.pl?
Change package Calc; to package Calcu; in Calcu.pm
The mismatch in package names is what is giving you trouble.
Have a read through perldoc Exporter for the gory details.
Have a look at perldoc perlootut for an overview of different ways in perl to create objects.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With