perl関連

レキシカル変数

testlex.pl

#!/usr/bin/env perl
my $value = 0;
{
  my $value = 1;
  print "a: $value\n";
  $value = 2;
  print "b: $value\n";
}
print "c: $value\n";

実行結果

$ ./testlex.pl 
a: 1
b: 2
c: 0


testlex2.pl

#!/usr/bin/env perl
my $value = 0;
{
  $value = 1;
  print "a: $value\n";
  $value = 2;
  print "b: $value\n";
}
print "c: $value\n";

実行結果

$ ./testlex2.pl 
a: 1
b: 2
c: 2

モジュール、パッケージ、名前空間

orange.pm

package orange;

$color = "orange";

1;

blue.pm

package blue;

$color = "blue";

1;

namespace.pl

#!/usr/bin/env perl

require orange;
require blue;

package orange;
print "color: $color\n";

package blue;
print "color: $color\n";

実行結果

$ ./namespace.pl 
color: orange
color: blue