簡體   English   中英

按升序對輸入文本文件和輸出文件進行排序(perl)

[英]Sort input text file and output file in ascending order (perl)

我是使用perl編程的新手,我遇到了如何在我的任務中解決這個問題的問題。 它非常簡單 - 子程序讀入一個輸入文本文件,其中每一行包含姓氏,名字和分數(按此順序),由一個空格分隔:

Williams John 999
Desplat Alexandre 123
Zimmer Hans 234
Newman Thomas 637

輸出看起來就像輸入文件一樣,只是根據姓氏按順序排列。

我在想我應該使用關聯數組/哈希? 我不能在perl的內置'sort'函數中使用。 如果有人可以解釋/描述我如何在這里實現哈希,那將是非常好的。

試試這個(@Zaid建議的修訂版,謝謝):

perl -e 'print sort <>' data_file

如果你不能使用Perl內置sort ,那么你需要實現自己的排序例程。 例如:

sub mySort {
        return @_ if @_ <= 1;

        my $pivot = shift;

        return (mySort (grep { $_ le $pivot } @_),
                $pivot,
                mySort (grep { $_ gt $pivot } @_));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM