codecamp

对象、模块及包

包基础

  • 包是方法的集合
  • 具有自己的命名空间
  • 包方法能被导出或直接调用
Foo::bar()
Foo->bar()
bar() (如果 Foo 已导出它)

模块基础

  • 模块是包含一个或多个包的文件
  • 多数人交替使用模块和包

对象基础

  • 对象是被 bless 的哈希引用(不必是哈希引用,但它最常见)
  • bless 将单个类赋给对象
  • 对象可被重新 bless

1;

  • 模块必须以真值结束
  • 不必是 1
  • 包没有相同的限制

@ISA

Perl 的对象继承方法使用 @ISA 来决定模块继承自什么类。多年前,通过直接 修改@ISA 声明继承。现在,多数程序使用 base 编译指令声明继承。

下列代码是等效的:

package Foo;
require Wango;
@ISA = ( "Wango" );

package Foo;
use base "Wango";
引用
特殊变量
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }