Chinaunix

标题: 关于sort [打印本页]

作者: xie3ks    时间: 2015-10-28 16:17
标题: 关于sort
  1. #!/usr/bin/perl

  2. use warnings;
  3. use strict;

  4. my ($d, $e);
  5. my @array = (8, 2, 32, 1, 4, 16);
  6. print join(' ', sort {$a <=> $b} @array), "\n";
复制代码
一直很奇怪,为什么 sort 后面的花括号里 必须用  $a 和 $b
用别的定义的变量都不行

比如我这里定义了  $d, $e
print join(' ', sort {$d <=> $e} @array), "\n";
就会报错

有谁能告诉为什么吗?

作者: 不仅仅是符号    时间: 2015-10-28 17:26
我记得$a和$b是sort里面内置的变量,要自己定义变量的话需要自己写个子程序吧。。
作者: 104359176    时间: 2015-10-28 19:56
这就是乌龟的屁股 - 规定。

在 Perl 6 中可以定义别的变量:
  1. @a.sort: { $^x < $^y }
复制代码
ASC 码在前的是表示前一个值。




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