Chinaunix

标题: Perl sort和reverse [打印本页]

作者: redring_wawa    时间: 2014-10-16 15:34
标题: Perl sort和reverse
perl 脚本如下
#! /usr/bin/perl

my @mysort = sort qw(Gilligana Skipperb Gingerc Professord Mary-Anne);
my @myreverse = reverse qw(Gilligana Skipperb Gingerc Professord Mary-Anne);
print "@mysort\n";
print "@myreverse\n";

sort出来的result是Gilligana Gingerc Mary-Anne Professord Skipperb 这个能明白,是按首字母排序的。
reverse出来的result竟然 Mary-Anne Professord Gingerc Skipperb Gilligana 这个不是应该是按首字母反序吗? 为什么是按尾字母逆序了?

小白求解释,谢谢!
作者: shijiang1130    时间: 2014-10-16 15:42
my @myreverse = reverse qw(Gilligana(1) Skipperb(2) Gingerc(3) Professord(4) Mary-Anne(5));
结果是: 5->4->3->2->1
我觉得对



作者: xiumu2280    时间: 2014-10-16 15:43
  1. my $youreverse = reverse qq(Gilligana Skipperb Gingerc Professord Mary-Anne);
复制代码

作者: fengshao2004    时间: 2014-10-16 15:44
我觉得是里面的词组作为一个字符串来考虑。
作者: redring_wawa    时间: 2014-10-16 16:02
回复 2# shijiang1130

我还以为是按首字母的顺序排序呢。这么理解就对了。
那sort是按首字母顺序排序,对吧。


   
作者: jason680    时间: 2014-10-16 20:08
回复 1# redring_wawa

$ perldoc -f sort
    sort SUBNAME LIST
    sort BLOCK LIST
    sort LIST
            In list context, this sorts the LIST and returns the sorted list
            value. In scalar context, the behaviour of "sort()" is undefined.
    ...

$ perldoc -f reverse
    reverse LIST
            In list context, returns a list value consisting of the elements
            of LIST in the opposite order.
In scalar context, concatenates the
            elements of LIST and returns a string value with all characters in
            the opposite order.

                print join(", ", reverse "world", "Hello"); # Hello, world

                print scalar reverse "dlrow ,", "olleH";    # Hello, world

            Used without arguments in scalar context, reverse() reverses $_.

                $_ = "dlrow ,olleH";
                print reverse;                              # No output, list context
                print scalar reverse;                       # Hello, world
            ...



   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2