1. Perl中变量的常用表示
${var} 相当于 $var
$Dog::days 在Dog包里面的变量$days
$#days @days 的最后一个索引
$days->[2] $days 引用的数组的的第3个元素
$days[0][2] 多维数组
$days{200}{'Feb'} 多维哈希
$days{2000,"Feb"} 多维哈希仿真 emulation
@days[3,4,5] 数组@days的对应3个元素的片段,也可写作 @days[3..5]
@days{'Jan','Feb'} 包含 $days{'Jan'} 和 $days{'Feb'}的值的散列片段, 如果是写作 %days{'Jan','Feb'} 则同时包含键和值. 但是不能用 $days{'Jan','Feb'},因为是列表上下文.
2. Perl中的名字空间(namespace)
分为符号表(symbol table) 和词法作用域(lexical scope)两种
符号表: 全局散列, 存储存放全局变量的符号表的记录
词法作用域: 未命名的中间结果暂存器, 不会存在于任何符号表, 只是附着在程序的一块代码后面.
3. Perl 中的引起构造
常用 | 通用 | 含义 | 可否内插 |
' ' | q/ / | 直接量字符串 | No |
" " | qq/ / | 直接量字符串 | Yes |
`` | qx/ / | 执行命令 | Yes |
() | qw/ / | 单词列表 | Yes |
/ / | m/ / | 模式匹配 | Yes |
s/ / / | s/ / / | 模式替换 | Yes |
y/ / / | tr/ / / | 字符转换 | No |
" " | qr/ / | 正则表达式 | Yes |
这些简写是为了方便写出更容易阅读的代码
$single = q!I said, "you said, 'she said it.'" !; $double = qq(Can't we get some "good");