perl package声明
来源:互联网 发布:软件开发如何报价 编辑:程序博客网 时间:2024/05/22 13:24
注:此文章为转载(http://blog.sina.com.cn/s/blog_6151984a0100eoha.html)
perl的包(package)和模块(PM)
==================================包package===========================
package mypack; 包文件的其始语句
此语句定义一个名为mypack的包,从此以后定义的所有变量和sub的名字都存贮在该包关联的符号表中,直到遇到另一个package语句为止。
包文件——包是面向对象的概念
#!/usr/bin/perl
package xxx; package指令创建“类”;
sub ... 创建sub就是创建“类”的“方法”
sub ...
sub ...
1; 包文件结尾要retrun 1
包(类)引用:
&mypack'printval();
在包mypack外调用包内sub
$mypack'line=10;
or
$mypack::line=10;
在包mypack外调用包内变量
perl5中建议$mypack::var
单引号引用的方式仍然支持,但将来的版本中未必支持
perl文件缺省包——main包
#!/usr/bin/perl
$i=0;
sub gotest {
…
}
等价
#!/usr/bin/perl
package main;
$i=0;
sub gotest {
…
}
如果在程序里package了其它的包,当你想切换回去使用缺省的符号表,可以重新指定package main;
这样,接下来的程序就好象从没定义过包一样
包文件和模块文件都是.pm
其中模块文件,文件名必须与package 名相同
在程序里可以随时在包间来回切换
1: #!/usr/local/bin/perl
2:
3: package pack1;
4: $var = 26;
5: package pack2;
6: $var = 34;
7: package pack1;
8: print ("$var\n");
$ ./tip.pl
26
$
在Perl 5中,可以用package; 指定无当前包, 这时,所有的变量必须明确指出所属包名,否则报错
package;
$var = 21;
#error - no current package
改正
package;
$mypack::var = 21;
包造成的私有变量和方法:保证包的变量不可在其它地方使用,这样的数据即为私有数据。
1 : package privpack;
2 : $valtoprint = 46;
3 :
4 : package main;
5 : # This function is the link to the outside world.
6 : sub printval {
7 : &privpack'printval();
8 : }
9 :
10: package privpack;
11: sub printval {
12: print ("$valtoprint\n"); 只有同一个包中,才能“直接”调用此变量,其他包中调用此变量要带::前缀或切换package ...
13: }
14:
15: package main;
16: 1;
- perl package声明
- perl package和module
- Perl package example
- perl的package和module
- Perl CPAN install PM package
- 挖掘package声明的潜力
- Understanding Reference, Module,Package, Object in Perl
- Perl PPM install one new package
- Perl如何从url安装package
- Perl脚本语言中包(Package)的用法
- Perl package Manager配置for mysql
- Perl package install Perl一些额外包的安装
- 怎么查看package的声明和定义
- my,our,local,Perl范围变量声明
- my,our,local,Perl范围变量声明
- perl范围声明our,my,local
- my,our,local,Perl范围变量声明
- Perl函数的声明与调用
- 利用__FILE__, __LINE__, __FUNCTION__跟踪调试程序
- 从2.4到2.6: Linux 内核可装载模块机制的改变对设备驱动的影响
- Makefile 学习(1):Introduction
- open和fopen的区别
- #define用法总结
- perl package声明
- C/C++ 宏带来的奇技淫巧
- hibernate3.2中如何调用存储过程
- LINUX平台设备(linux platform_device and platform_driver)
- 日期控件My97DatePicker用法
- 各种常用头文件的作用(转载整理)
- platform_device和platform_driver 流程简介
- SVN版本库无损迁移与自动备份(二)
- 2410 RTC 驱动解读