Perl Tutorials - Herong's Tutorial Examples - v6.01, by Dr. Herong Yang
require() Function - Including Script Files
This section provides a tutorial example showing you how to the require() function is better than the do() function - if the same file is included multiple time, the require() function will only execute it once.
As mentioned in the previous section, require() function can be used to include script code from another file into the current script file. To try this out, I wrote another include file, MyRequireLib.inc,
#- MyRequireLib.inc #- Copyright (c) HerongYang.com. All Rights Reserved. # $author = "Dr. Herong Yang"; print("Printing from MyRequireLib.inc...\n"); sub myRequireSub { print("Printing from myRequireSub()...\n"); } 1;
Here is tutorial script that tests the difference between the do() function and the require() function:
#- IncRequireTest.pl #- Copyright (c) HerongYang.com. All Rights Reserved. # print("\nTesting require()...\n"); require("MyRequireLib.inc"); require("MyRequireLib.inc"); print("Author = $author\n"); &myRequireSub(); print("\nTesting do()...\n"); do("MyDoLib.inc"); do("MyDoLib.inc"); print("Author = $author\n"); &myDoSub(); exit;
The output matches my expectation. The second require() call didn't do any execution.
Testing require()... Printing from MyRequireLib.inc... Author = Dr. Herong Yang, https://www.herongyang.com/ Printing from myRequireSub()... Testing do()... Printing from MyDoLib.inc... Printing from MyDoLib.inc... Author = Herong Yang Printing from myDoSub()...
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
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