bei 发表于 2015-12-28 09:43:55

modern perl学习笔记

  eq 操作符通过强制 字符串上下文,按字符串对待它的操作数。== 操作符则强制 数值上下文。
  在极少数情况下,没有合适类型的操作符存在,你也许需要明确地强制上下文。强制数值上下文,在变量前加零。 强制字符串上下文,将变量和空字符串拼接起来。强制布尔上下文,使用双重否定操作符。
  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
代码。它必须以一个求值得真的表达式结束
页: [1]
查看完整版本: modern perl学习笔记