Your Very Own Module
You too can write your own modules. It is easy. First, we will create the fantastic bit of code that we want to re-use everywhere. First, we'll write a normal Perl program:
$name=shift;
print &logname($name);
sub logname {
my $name=shift;
my @namebits;
my ($logon,$inital);
@namebits=split /\s+/,$name;
($inital)=$name=~/(\w)/;
$logon=$inital.$namebits[$#namebits];
$logon=lc $logon;
return $logon;
}
Execute like so; perl script.pl "Nick Bladon"
The script itself is nothing amazing. The lc function
stands for LowerCase, or probably lOWERcASE -- you can see what it does.
In order to turn it into a module carry out the following steps:
- Find out where your copy of Perl is installed, for example
c:\progs\perl. - Within that directory there should be a
libdirectory. - Make a directory within lib, for example
c:\progs\perl\lib\RMP\
Now we'll make the module. Remember, a module is just code you are going to reuse. So we don't need all of the above example. Just this bit:
sub logname {
my $name=shift;
my @namebits;
my ($logon,$inital);
@namebits=split /\s+/,$name;
($inital)=$name=~/(\w)/;
$logon=$inital.$namebits[$#namebits];
$logon=lc $logon;
return $logon;
}
1;
The bit that has been added is the 1 at the bottom. Why? Perl requires
that all modules return true. We know that a subroutine always returns the value of the
last expression evaluated. As 1 evaluates to true, that'll do.
You need to save this as logon.pm in your newly created directory under lib.
The pm stands for Perl Module.
That's it. A module created. To use, just make a normal Perl script such as:
use RMP::logon; $name=shift; print logname($name);
and hey presto! Module power is yours!
You don't have to create your own subdirectory within lib but I would
advise it for the sake of neatness. And as you might expect, there is a lot more to learn
about modules but this is supposed to be a basic tutorial, so that's enough for the time
being.