Perl Tutorials - Herong's Tutorial Examples - v6.01, by Dr. Herong Yang
Defining Your Own Perl Module
This section provides a tutorial example on how to define your own Perl module with its own name space and stored in a separate script file named as *.pm.
Perl Module - A special source code file that:
Here is a dummy example of Perl module, MyModule.pm,
#- MyModule.pm #- Copyright (c) HerongYang.com. All Rights Reserved. # package MyModule; sub BEGIN { print("Printing in BEGIN of ",__PACKAGE__,"...\n"); $begin = "Begin"; } sub CHECK { print("Printing in CHECK of ",__PACKAGE__,"...\n"); $check = "Check"; } sub INIT { print("Printing in INIT of ",__PACKAGE__,"...\n"); $init = "Init"; } sub END { print("Printing in END of ",__PACKAGE__,"...\n"); $end = "End"; } print("Printing from MyModule.pm...\n"); sub myModuleSub { print("Printing from myModuleSub()...\n"); } 1;
And a dummy test script, ModuleTest.pl,
#- ModuleTest.pl #- Copyright (c) HerongYang.com. All Rights Reserved. # print("Printing from ModuleTest.pl before MyModule...\n"); require MyModule; print("Printing from ModuleTest.pl after MyModule...\n"); print("MyModule::begin = $MyModule::begin\n"); print("MyModule::check = $MyModule::check\n"); print("MyModule::init = $MyModule::init\n"); print("MyModule::end = $MyModule::end\n"); &MyModule::myModuleSub(); exit;
Here is the output of the test script:
Printing from ModuleTest.pl before MyModule... Printing in BEGIN of MyModule... Printing from MyModule.pm... Printing from ModuleTest.pl after MyModule... MyModule::begin = Begin MyModule::check = MyModule::init = MyModule::end = Printing from myModuleSub()... Printing in END of MyModule...
A couple of notes here:
Table of Contents
Data Types: Values and Variables
Expressions, Operations and Simple Statements
►Name Spaces and Perl Module Files
Including Script Codes from Other Files
do() Function - Including Script Files
require() Function - Including Script Files
"package" Statement - Switching Name Space
BEGIN(), CHECK(), INIT() and END() Functions
►Defining Your Own Perl Module
CalendarModule.pm - A Sample Perl Module
Hard References - Addresses of Memory Objects
Objects (or References) and Classes (or Packages)
Typeglob and Importing Identifiers from Other Packages
String Built-in Functions and Performance
File Handles and Data Input/Output
Open Directories and Read File Names
File System Functions and Operations
Socket Communication Over the Internet
XML::Simple Module - XML Parser and Generator
SOAP::Lite - SOAP Server-Client Communication Module
Perl Programs as IIS Server CGI Scripts
CGI (Common Gateway Interface)
XML-RPC - Remote Procedure Call with XML and HTTP
RPC::XML - Perl Implementation of XML-RPC
Integrating Perl with Apache Web Server
CGI.pm Module for Building Web Pages
LWP::UserAgent and Web Site Testing
Converting Perl Script to Executable Binary