Perl Tutorials - Herong's Tutorial Examples - v6.02, by Herong Yang
SubParamAlias.pl - Example on Parameters as Alias
This section provides a tutorial example on how parameters are passed as aliases - modifying the value of a parameter will cause the value of the original variable updated in caller's code.
As mentioned in the previous section, all parameters are passed as aliases. If the value of a parameter is modified inside a subroutine, the value of the corresponding variable in the calling code is also modified. But if the calling code is passing a literal as a parameter, then you can not modify the value of this parameter. You will get an execution error.
Here is a tutorial example on parameters passed as aliases into a subroutine:
#- SubParamAlias.pl #- Copyright (c) HerongYang.com. All Rights Reserved. # $a = 'hello'; @a = ('mon','tue','wed','thu','fri'); # &subParamAlias('world'); &subParamAlias($a); print $a, "\n"; &subParamAlias(@a); print join(',',@a), "\n"; exit; sub subParamAlias { foreach (@_) { tr/a-z/A-Z/; } }
Here is the output of the tutorial script:
HELLO MON,TUE,WED,THU,FRI
The output clearly shows you that modifying the parameter array directly will cause value changes on the caller's variables.
Table of Contents
Data Types: Values and Variables
Expressions, Operations and Simple Statements
Declaring and Calling Subroutines
SubParamList.pl - Example on Parameter List
►SubParamAlias.pl - Example on Parameters as Alias
SubReturnValue.pl - Example on Return Values
SubCalling.pl - Example on Calling Formats
Name Spaces and Perl Module Files
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