原贴地址:http://bbs.chinaunix.net/thread-3563215-1-1.html
flw回帖里有翻译,我试答如下:
- Perl 5 中变量名开头的那个字符(sigils)有哪几种、分别都有什么含义?
$标量@数组%散列&函数
- 访问一个数组元素时,用 $items[$index] 和用 @items[$index] 有什么区别?
$是标量,@是数组切片
- 请问 == 和 eq 之间的区别是什么?
分别是数值和字符的比较
- 在列表上下文中对一个 hash 求值,会得到什么?
应该是得到一个数组?
- 如何查看关键字的 Perl 文档?
perldoc -f
- Perl 5 中的函数和方法有什么不同?
方法是bless后的函数调用?
- Perl 5 什么时候对一个变量所使用的内存进行回收?
引用计数器清空后?(好像记得是)或者执行完成退出的时候
- 如何做才能够确保一个变量的缺省作用域是词法作用域?
my local?
- 如何加载模块并且从中导入符号?
use Module;
符号是啥?
- 是什么在控制 Perl 如何加载模块?有什么办法可以指定一个目录清单告诉 Perl 从这些地方尝试加载模块?
不知道。
use lib qw();或者perl -I或者export PERL5LIB=
- 你怎么在 Perl 5 的文档中中查看一条错误信息说明?(加分项:了解如何为所有遇到过的错误信息启用解释)
汗,这个用|less然后/搜索……有好办法么?
- 试着阐述一下把数组传递给函数的时候会发生什么事。
应该是复制一个数组副本出来,然后赋值到@_给函数用?
- 如何传递多个独立的数组给函数?
分别传递数组引用。
- 对于调用方来说,return 和 return undef 有什么区别?
return的应该是上一个的结果吧?
- Where do tests go in a standard CPAN distribution?
module里头都有t/目录可以test吧,然后cpan.org上有志愿者?
- 拿到一个 CPAN 模块后怎样进行测试?
make test
- 你用什么命令从 CPAN 上安装新模块?
cpanm Module
- 为什么要使用 open 函数的三参数形式?
预防文件名带有>等特殊字符串
- 如何检测(和报告)像 open 这样的系统调用产生的错误?(加分项: 知道如何开启自动检测和报告)
在open的时候接上or die $@;
use autodie;
- 如何在 Perl 5 中抛出一个异常?
die
- 如何在 Perl 5 中捕获一个异常?
eval {}
- 用 for 读文件和用 while 读文件有什么不同吗?
for一次性读入;while一次一行
- 在 Perl 5 的函数或者方法中,你分别是如何处理参数的?
my $abc = shift;
my ($abc, $def) = @_;
- my ($value) = @_; 中的小括号有什么用?如果删掉会发生什么?
强制为列表环境;
删掉之后变成标量环境就是@_的元素个数了。
- new 是 Perl 5 的内置函数或者关键字吗?
不是,模块里要自己写new方法。
- 你怎么看 Perl 的核心模块的文档?如果是 CPAN 模块的话又该如何看?
perldoc查看,不过核心模块和一般模块方法有区别么?
- 怎样只访问 hash 的值?
values函数