求解释!!!一段perl代码
时间:2011-06-22
来源:互联网
来自webmin的apache模块的库文件:apache-lib.pl
#find_directive(name, &directives, [1stword])
#问题1: &directives是什么意思?调用函数还是返回指针? [1stword]又表示什么?
#Returns the values of directives matching some name
sub find_directive
{
local (@vals, $ref);
foreach $ref (@{$_[1]}) {
#问题2:$_[1]表示第二个参数,也就是&directives,前面加个@,是什么作用?
if (lc($ref->{'name'}) eq lc($_[0])) {
push(@vals, $_[2] ? $ref->{'words'}->[0] : $ref->{'value'});
#问题3:$ref->{'words'}->[0] 返回值是什么?
}
}
return wantarray ? @vals : !@vals ? undef : $vals[$#vals];
#问题4:$#vals是什么意思?
}
学习perl已经有一段时间了,可是看得越多,不懂的越多。本人愚笨,随便翻开一个函数,竟然大半内容无法看懂。
请高手给予解答,跪谢。
作者: chenjintao_ii 发布时间: 2011-06-22
牵涉到引用。这代码你看不懂也正常,我估计作者是故意写成这种混沌风格的
而且这代码至少10+年前写的吧,别学这个
作者: zhlong8 发布时间: 2011-06-22
可我还是想弄懂这些东西
作者: chenjintao_ii 发布时间: 2011-06-22
可我还是想弄懂这些东西
chenjintao_ii 发表于 2011-06-22 15:09
先学基础....自然就会懂.....
(不然说了也白说....)
作者: jason680 发布时间: 2011-06-22
可我还是想弄懂这些东西
chenjintao_ii 发表于 2011-06-22 15:09
问题一:那是段注释 &directives 是调用函数的意思,1stword 是语法错误
问题二:@{} 括号里面是个引用,也可以是字符串作为符号引用
问题三:看你什么数据,这是一个复杂的数据结构
问题四: $#name 是 @name 这个数组的 长度 -1 即最后一个元素的索引
作者: zhlong8 发布时间: 2011-06-22
我正在学基础啊。你要我学好基础再指导我,可是我需要有人指导才能学好基础。。。
作者: chenjintao_ii 发布时间: 2011-06-22
问题二:@{} 括号里 ...
zhlong8 发表于 2011-06-22 15:48
问题三:看你什么数据,这是一个复杂的数据结构
主要是“->[0]”,我不知道这个是什么用法。
作者: chenjintao_ii 发布时间: 2011-06-22
我正在学基础啊。你要我学好基础再指导我,可是我需要有人指导才能学好基础。。。 ...
chenjintao_ii 发表于 2011-06-22 15:52
新任版主(zhlong8 )说了:"而且这代码至少10+年前写的吧,别学这个"
这不是基础....
作者: jason680 发布时间: 2011-06-22
晕,你比我还会玩文字游戏
作者: chenjintao_ii 发布时间: 2011-06-22
晕,你比我还会玩文字游戏
chenjintao_ii 发表于 2011-06-22 16:03
文字游戏!!??
这个须要用到的基础有
1. 阵列 array (包含子程序参数阵列@_)
2. 哈唏 hash
3. 参考 reference, 解参考 dereference
含阵列,哈唏 参考/解参考(引用)
这些基础要先学....
作者: jason680 发布时间: 2011-06-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28