1 #!/usr/bin/perl
2
3 @town = qw(china wencheng qinglan);
4 $friend = "Jasmine";
5 #在main包中
6 print "In main: \$friend is $friend\n";
7 #声明 boy 包,并切换到boy
8 package boy;
9 #$name在boy包中的命名空间里,和main中的互不干扰
10 $name = "Tony";
11 print "In boy \$name is $name.\n";
12 #使用main包中的$friend,并进行修改
13 $main::friend = "Obama";
14 print "In boy \@town is @::town\n"; #main包是默认包,不需要写出main的名字,用@符号代替main
15 #切换回main包中
16 package main;
17 print "In main: \$name is $name\n";
18 print "In main: \$main is $boy::name\n";
19 print "In main: \$friend is $friend.\n";
运行结果:
1 In main: $friend is Jasmine
2 In boy $name is Tony.
3 In boy @town is china wencheng qinglan
4 In main: $name is
5 In main: $main is Tony
6 In main: $friend is Obama.
创建一个包及引用包中的子例程:
1 #!/usr/bin/perl
2 unshift(@INC,"D:\\perlwork1");
3 require "average.pl";
4 print "Enter your midterm scores\n";
5
6 @scores=split(' ',<STDIN>);
7
8 printf "The average is %.lf.\n",average::ave(@scores);#应用包中ave子例程 创建包
1 #!/usr/bin/perl
2 package average
3 sub ave
4 {
5 my (@grades)=@_;
6 my ($num_of_grades)=$#grades+1;
7 foreach $grade( @grades )
8 {
9 $total +=$grade;
10 }
11 $total/$num_of_grades;
12 }
13 1; 模块
Perl5中用Perl包来创建模块,方法是创建Perl包并将之存在同名的文件中。例如,名为Mymodult的Perl包存贮在文件Mymodult.pm中(扩展名.pm表示PerlModule)。下例的模块Mymodult含有子程序myfunc1和myfunc2及变量$myvar1和$myvar2。