#!/usr/local/bin/perl
use strict;
use warnings;
use utf8;
print "Content-type: text/html; charset=utf-8\n\n";
print "\n";
print "\n";
print "
\n";
print "CGI test\n";
print "\n";
print "\n";
print "------------------
\n";
package foo;
{
my $hoge = 'サブルーチンの外';
print $hoge,"
\n"; #「サブルーチンの外」が出力される
&example; #1度目のサブルーチン実行 #print文で「サブルーチンの中」が出力される
sub example{
our $hoge;
BEGIN { #BEGINは一度目の呼び出しに限り実行される
$hoge = 'サブルーチンの中';
}
print $hoge,"
\n";
}
print $hoge,"
\n"; #「サブルーチンの外」が出力される
&example; #2度目のサブルーチン実行 #print文で「サブルーチンの中」が出力される
#our $hogeにより、データが保存されている
}
print $foo::hoge,"
\n"; #「サブルーチンの中」が出力される
#ourは、パッケージ名前空間を利用できる
package bar;
{
print $foo::hoge,"
\n"; #パッケージ名前空間を利用して参照することができる
}
print "------------------
\n";
print "\n";
print "\n";