看被人的代码 问了问题

看被人的代码 问了问题

foreach my $dm (sort{$doc{$b}{views} <=> $doc{$a}{views}} keys %doc)
我知道是foreach循环 但是我看不懂得是 my是干嘛的 $dm呢  还有它所指的数组是谁呀 keys%doc有是什么意思 我从来没看过perl 一点也不懂 知道的请告诉我 谢谢了


QUOTE:
原帖由 xinguan1267 于 2008-4-21 15:00 发表
我从来没看过perl 一点也不懂

那就从最简单的开始学呗。
http://perldoc.perl.org

可是现在没有时间从头开始学这个了 你能给我解释解释那个句子吗


QUOTE:
原帖由 xinguan1267 于 2008-4-21 15:06 发表
可是现在没有时间从头开始学这个了 你能给我解释解释那个句子吗

呵呵。那我就爱莫能助了。
我就是看不懂这句话sort{$doc{$b}{views} <=> $doc{$a}{views}} keys %doc


QUOTE:
原帖由 xinguan1267 于 2008-4-21 15:11 发表
我就是看不懂这句话sort{$doc{$b}{views}  $doc{$a}{views}} keys %doc

perldoc -f sort
服你了
不知道说得对不对 试着解释一下
首先,sort keys %doc 是对%doc这个hash进行按key排序
然后,sort{$doc{$b}{views} <=> $doc{$a}{views}} keys %doc 中的
$doc{$b}{views} <=> $doc{$a}{views}
应该是排序的方法 这个具体请参照排序那一部分 (实际上我这一块儿也比较糊涂 不好意思)
然后,(sort{$doc{$b}{views} <=> $doc{$a}{views}} keys %doc) 实际上就是一个经过特定排序方法排序过了的hash
这样,foreach my $dm (sort{$doc{$b}{views} <=> $doc{$a}{views}} keys %doc)
就可以简化为
foreach my $dm (%hash)
来看待了
这样子,$dm就知道是什么了吧?键,值,键,值……这样子循环把%hash中的内容取出
niubility
看被人的代码 问了问题   # 这句话怎么理解? 看不懂    标题比代码深奥