Perl Tutorials - Herong's Tutorial Examples
Dr. Herong Yang, Version 5.00

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) 1995 by Dr. Herong Yang, http://www.herongyang.com/
#
   $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.

Sections in This Chapter

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

Dr. Herong Yang, updated in 2008
SubParamAlias.pl - Example on Parameters as Alias