Perl 教程 之 Perl 包和模块 1
Perl 包和模块
Perl 中每个包有一个单独的符号表,定义语法为:
package mypack;
此语句定义一个名为 mypack 的包,在此后定义的所有变量和子程序的名字都存贮在该包关联的符号表中,直到遇到另一个 package 语句为止。
每个符号表有其自己的一组变量、子程序名,各组名字是不相关的,因此可以在不同的包中使用相同的变量名,而代表的是不同的变量。
从一个包中访问另外一个包的变量,可通过" 包名 + 双冒号( :: ) + 变量名 " 的方式指定。
main
package main;
这样,接下来的程序就好象从没定义过包一样,变量和子程序的名字象通常那样存贮。
以下实例中文件有 main 和 Foo 包。 特殊变量 PACKAGE 用于输出包名:
实例
!/usr/bin/perl
main 包
$i = 1;
print "包名 : " , PACKAGE , " $i\n";
package Foo;
Foo 包
$i = 10;
print "包名 : " , PACKAGE , " $i\n";
package main;
重新指定 main 包
$i = 100;
print "包名 : " , PACKAGE , " $i\n";
print "包名: " , PACKAGE , " $Foo::i\n";
1;
执行以上程序,输出结果为:
包名 : main 1
包名 : Foo 10
包名 : main 100
包名: main 10