I reformatted your code to be more readable, fixed the ==, added 'my' to the subroutine vars, removed the 'v' filehandle so I could just print to the screen, seems to work for me based on your logic. Here is the code (always 'use strict;'!).
and here is the output:#!/usr/bin/perl -w use strict; $| = 1; my $a = 1; my $b = 1; my $c = 1; print "Passing in \$a: $a, \$b: $b, \$c: $c: expect p 1 1\n"; ddd($a,$b,$c); $a = 2; $b = 2; $c = 2; print "Passing in \$a: $a, \$b: $b, \$c: $c: expect pp 2 2\n"; ddd($a,$b,$c); $a = 3; $b = 3; $c = 3; print "Passing in \$a: $a, \$b: $b, \$c: $c: expect 3 w 3\n"; ddd($a,$b,$c); sub ddd { my $a = $_[0]; my $b = $_[1]; my $c = $_[2]; if ($a == '1') { $a = 'p'; } elsif ($a == '2') { $a = 'pp'; } if ($b == '3') { $b = 'w' } print " < $a > < $b > < $c > \n"; }
#> ./test-subroutine.pl Passing in $a: 1, $b: 1, $c: 1: expect p 1 1 < p > < 1 > < 1 > Passing in $a: 2, $b: 2, $c: 2: expect pp 2 2 < pp > < 2 > < 2 > Passing in $a: 3, $b: 3, $c: 3: expect 3 w 3 < 3 > < w > < 3 > #>
In reply to Re: Loops and variable usage
by apprentice
in thread Loops and variable usage
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |