sub Munger1 {
my ($p1, $p2) = @_;
#...
my $munge1 = $p1.' or '.$p2;
my $munge2 = $p2.' or '.$p1;
return ($munge1, $munge2);
}
my ($a1, $a2) = Munger1($p1, $p2);
####
sub Munger2 {
my ($p1, $p2, $m1, $m2) = @_;
#...
$$m1 = $p1.' or '.$p2;
$$m2 = $p2.' or '.$p1;
}
Munger2($p1, $p2, \$a3, \$a4);
####
sub Munger3 {
my ($p1, $p2) = @_;
#...
$_[2] = $p1.' or '.$p2;
$_[3] = $p2.' or '.$p1;
}
Munger2($p1, $p2, $a5, $a6);
####
sub Munger4 {
my ($p1, $p2) = @_;
#...
my $munge1 = $p1.' or '.$p2;
my $munge2 = $p2.' or '.$p1;
return (\$munge1, \$munge2);
}
my ($ar7, $ar8) = Munger4($p1, $p2);
####
#!/usr/bin/perl -w
use strict;
sub Munger1 { # Munger returns 2 scalars
my ($p1, $p2) = @_;
#...
my $munge1 = $p1.' or '.$p2;
my $munge2 = $p2.' or '.$p1;
return ($munge1, $munge2);
}
sub Munger2 { # Munger2 returns results via passed in references
my ($p1, $p2, $m1, $m2) = @_;
#...
$$m1 = $p1.' or '.$p2;
$$m2 = $p2.' or '.$p1;
}
sub Munger3 { # Munger3 returns results via "aliased"??? references
my ($p1, $p2) = @_;
#...
$_[2] = $p1.' or '.$p2;
$_[3] = $p2.' or '.$p1;
}
sub Munger4 { # Munger4 returns 2 scalar references
my ($p1, $p2) = @_;
#...
my $munge1 = $p1.' or '.$p2;
my $munge2 = $p2.' or '.$p1;
return (\$munge1, \$munge2);
}
my $p1 = "This";
my $p2 = "That";
my ($a1, $a2) = Munger1($p1, $p2);
print "Munger 1: A1=$a1 A2=$a2\n";
my ($a3, $a4) = ('a3' , 'a4');
Munger2($p1, $p2, \$a3, \$a4);
print "Munger 2: A3=$a3 A4=$a4\n";
my ($a5, $a6) = ('a5' , 'a6');
Munger3($p1, $p2, $a5, $a6);
print "Munger 3: A5=$a5 A6=$a6\n";
my ($aref7, $aref8) = Munger4($p1, $p2);
print "Munger 4: A7=$$aref7 A8=$$aref8\n";