+ -
当前位置:首页 → 问答吧 → 求解释!!!一段perl代码

求解释!!!一段perl代码

时间:2011-06-22

来源:互联网

本帖最后由 chenjintao_ii 于 2011-06-22 14:51 编辑

来自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

本帖最后由 zhlong8 于 2011-06-22 15:03 编辑

牵涉到引用。这代码你看不懂也正常,我估计作者是故意写成这种混沌风格的

而且这代码至少10+年前写的吧,别学这个

作者: zhlong8   发布时间: 2011-06-22

回复 zhlong8


    可我还是想弄懂这些东西

作者: chenjintao_ii   发布时间: 2011-06-22



QUOTE:
回复  zhlong8


    可我还是想弄懂这些东西
chenjintao_ii 发表于 2011-06-22 15:09




先学基础....自然就会懂.....
(不然说了也白说....)

作者: jason680   发布时间: 2011-06-22



QUOTE:
回复  zhlong8


    可我还是想弄懂这些东西
chenjintao_ii 发表于 2011-06-22 15:09




    问题一:那是段注释 &directives 是调用函数的意思,1stword 是语法错误
    问题二:@{} 括号里面是个引用,也可以是字符串作为符号引用
    问题三:看你什么数据,这是一个复杂的数据结构
    问题四: $#name 是 @name 这个数组的 长度 -1 即最后一个元素的索引

作者: zhlong8   发布时间: 2011-06-22

回复 jason680


    我正在学基础啊。你要我学好基础再指导我,可是我需要有人指导才能学好基础。。。

作者: chenjintao_ii   发布时间: 2011-06-22



QUOTE:
问题一:那是段注释 &directives 是调用函数的意思,1stword 是语法错误
    问题二:@{} 括号里 ...
zhlong8 发表于 2011-06-22 15:48




    问题三:看你什么数据,这是一个复杂的数据结构
主要是“->[0]”,我不知道这个是什么用法。

作者: chenjintao_ii   发布时间: 2011-06-22



QUOTE:
回复  jason680


    我正在学基础啊。你要我学好基础再指导我,可是我需要有人指导才能学好基础。。。 ...
chenjintao_ii 发表于 2011-06-22 15:52




新任版主(zhlong8 )说了:"而且这代码至少10+年前写的吧,别学这个"

这不是基础....

作者: jason680   发布时间: 2011-06-22

回复 jason680


    晕,你比我还会玩文字游戏

作者: chenjintao_ii   发布时间: 2011-06-22

本帖最后由 jason680 于 2011-06-22 16:30 编辑


QUOTE:
回复  jason680


    晕,你比我还会玩文字游戏
chenjintao_ii 发表于 2011-06-22 16:03




文字游戏!!??

这个须要用到的基础有
1. 阵列 array (包含子程序参数阵列@_)
2. 哈唏 hash
3. 参考 reference, 解参考 dereference
   含阵列,哈唏 参考/解参考(引用)

这些基础要先学....

作者: jason680   发布时间: 2011-06-22

热门下载

更多