我是使用perl编程的新手,我遇到了如何在我的任务中解决这个问题的问题。它非常简单 - 子程序读入输入文本文件,其中每一行包含姓氏,名字和分数(按此顺序),由一个空格分隔:
Williams John 999
Desplat Alexandre 123
Zimmer Hans 234
Newman Thomas 637
等。 输出看起来就像输入文件一样,只是根据姓氏按顺序排列。
我在想我应该使用关联数组/哈希?我不能在perl的内置'sort'函数中使用。如果有人可以解释/描述我如何在这里实现哈希,那就太棒了。
答案 0 :(得分:2)
试试这个(@Zaid建议的修订版,谢谢):
perl -e 'print sort <>' data_file
如果你不能使用Perl builtin sort
,那么你需要实现自己的排序例程。例如:
sub mySort {
return @_ if @_ <= 1;
my $pivot = shift;
return (mySort (grep { $_ le $pivot } @_),
$pivot,
mySort (grep { $_ gt $pivot } @_));
}