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");
?