关于perl中的sort

软件和网站开发以及相关技术探讨
回复
喜欢散步
帖子: 2
注册时间: 2013-07-30 15:39
系统: debian

关于perl中的sort

#1

帖子 喜欢散步 » 2015-05-25 2:49

最近迷上了perl, 想学习一下, 但是资料很少啊, 刚开始学, 写了个程序, 有点问题, 想请教一下。

代码: 全选

  1 #!/usr/bin/perl -w
  2 #reverse 反序一个数组或列表
  3 #sort 排序数组
  4 #注意,这两个函数并不会修改原数组, 要得到调整后的数,请另保存
  5 
  6 @test = qw/user root localhost password etc passwd/;
  7 print "@test\n";
  8 #my @a = sort @test;
  9 #print "@a\n";
 10 print sort @test, "\n";
 11 print "@test\n";
~                      
以上的代码输出如下:

代码: 全选

user root localhost password etc passwd

etclocalhostpasswdpasswordrootuseruser root localhost password etc passwd
怎么回事?不是输出sort @test之后打印空格吗, 上面的输出是怎么解?
是不是print sort @test, "\n";这个语句, perl解释成了print (sort (@test, "\n")), 也就是排序@test与"\n"符?
如果是的话, 那我要在同一行先打印sort @test再输出换行, 要怎么写?
不知以后有perl提问去哪里问好啊。有没有建义?
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

Re: 关于perl中的sort

#2

帖子 HuntXu » 2015-05-25 9:55

喜欢散步 写了: 是不是print sort @test, "\n";这个语句, perl解释成了print (sort (@test, "\n")), 也就是排序@test与"\n"符?
如果是的话, 那我要在同一行先打印sort @test再输出换行, 要怎么写?
是,要打印再换行,就用括号

代码: 全选

print ((sort @test), "\n");
要好看点就

代码: 全选

print ((join ' ', sort @test), "\n");
HUNT Unfortunately No Talent...
回复