eq 操作符通過強制 字串上下文,按字串對待它的運算元。== 操作符則強制 數值上下文。
在極少數情況下,沒有合適類型的操作符存在,你也許需要明確地強制上下文。強制數值上下文,在變數前加零。 強制字串上下文,將變數和Null 字元串拼接起來。強制布爾上下文,使用雙重否定操作符。
my $numeric_x = 0 + $x; # 強制數值上下文
my $stringy_x = '' . $x; # 強制字串上下文
my $boolean_x = !!$x; # 強制布爾上下文
作為對你設定 CPAN 用戶端和相應環境來構建和安裝發行版的回報,你得到了可以完成任何任務的 程式碼程式庫的訪問權────
從資料庫訪問到能處理現存幾乎所有網路裝置的協議分析工具再到聲音和映像 處理庫以及你系統上共用庫的封裝器。 #或許這就是Perl的優勢所在吧。。。
App::cpanminus
是一個新興的 CPAN 用戶端,以速度、簡潔和零配置為目標。安裝它簡單到: #這個不錯
$ curl -LO http://xrl.us/cpanm $ chmod +x cpanm
即使你可以通過一系列內嵌的逸出字元來聲明一個複雜的字串,有些時候跨行聲明一個多行字元 串更為方便。heredoc 的文法讓你可以以另一種方式進行多行字串賦值:
my $blurb =<<'END_BLURB';
He looked up. "Time is never on our side, my child. Do you see the irony? All they know is change. Change is the constant on which they all can agree.
Whereas we, born out of time to remain perfect and perfectly self-aware, can only suffer change if we pursue it. It is against our nature.
We rebel against that change. Shall we consider them greater for it?"
END_BLURB
Perl 5 中讀取檔案最清晰的方式是:
use autodie;
open my $fh, '<', $filename;
while (my $line = <$fh>)
{
chomp $line;
...
}
,$@ 是一個 全域 變數。為了安全起見,你應該在意圖捕獲異常之前,用 local 本地化的它
的值:
local $@;
# 也許無法開啟記錄檔
my $fh = eval { open_log_file( 'monkeytown.log' ) };
# 捕獲異常
if ($@) { ... }
。來自 CPAN Try::Tiny 發行模組非常簡短,易於安
裝, 易於理解,同時也便於使用:
use Try::Tiny;
my $fh = try { open_log_file( 'monkeytown.log' ) }
catch { ... };
不僅是文法比 Perl 5 預設的更加友好,而且該模組在你不知情的情況下處理了所有邊邊角角的情況。 # 又跪了。。。。
模組 就是一個包含於自身檔案中、可用 use 或 require 載入的包。一個模組必須是 合法的 Perl 5
代碼。它必須以一個求值得真的運算式結束