Subroutines and Arguments
Lexical Variables
Variables declared with my inside a subroutine stay local to that subroutine.
Lexical Variables
lexical_variables.pl
use strict;
use warnings;
sub add_bonus {
my ($base, $bonus) = @_;
my $inside_total = $base + $bonus;
return $inside_total;
}
my $base = 10;
my $bonus = ;
my $result = add_bonus($base, $bonus);
print "base=$base\n";
print "bonus=$bonus\n";
print "result=$result\n";
use strict;
use warnings;
sub add_bonus {
my ($base, $bonus) = @_;
my $inside_total = $base + $bonus;
return $inside_total;
}
my $base = 10;
my $bonus = ;
my $result = add_bonus($base, $bonus);
print "base=$base\n";
print "bonus=$bonus\n";
print "result=$result\n";
use strict;
use warnings;
sub add_bonus {
my ($base, $bonus) = @_;
my $inside_total = $base + $bonus;
return $inside_total;
}
my $base = 10;
my $bonus = ;
my $result = add_bonus($base, $bonus);
print "base=$base\n";
print "bonus=$bonus\n";
print "result=$result\n";
lexical variable
A lexical variable belongs to the block where it is declared.