#!/usr/local/bin/perl
use strict;
use warnings;
print "Content-type: text/html; charset=utf-8\n\n";
print "\n";
print "\n";
print "
\n";
print "CGI test\n";
print "\n";
print "\n";
&says;
{
package Foo;
&says;
sub says {
print "&Foo::says is called!
\n";
}
}
&says;
&Foo::says;
sub says {
print "&main::says is called!
\n";
}
our $name = "I am main!"; #main パッケージ
{
package Foo1;
our $name = "I am Foo1!"; #Foo1 パッケージ
}
our $age = "100"; #main パッケージ
print "----------------
\n";
package AAA;
our $our_var = 123;
my $my_var = 567;
#udf は、未定義(undefined)を示す
package DDD;
print "\$name :",( $name // "udf" ),"
\n";
print "\$age :",( $age // "udf" ),"
\n";
print "\$name :",( $main::name // "udf" ),"
\n";
print "\$age :",( $main::age // "udf" ),"
\n";
print "\$name :",( $Foo1::name // "udf" ),"
\n";
print "\$age :",( $Foo1::age // "udf" ),"
\n";
print "----------------
\n";
print "\$our_var :",( $our_var // "udf" ),"
\n";
print "\$AAA::our_var :",( $AAA::our_var // "udf" ),"
\n";
print "\$DDD::our_var :",( $DDD::our_var // "udf" ),"
\n";
print "\$my_var :",( $my_var // "udf" ),"
\n";
print "\$AAA::my_var :",( $AAA::my_var // "udf" ),"
\n";
print "\$DDD::my_var :",( $DDD::my_var // "udf" ),"
\n";
print "\n";
print "\n";