파일 이름을 매개변수로 사용하고 Perl에서 내림차순으로 정렬합니까?

파일 이름을 매개변수로 사용하고 Perl에서 내림차순으로 정렬합니까?

나는이 펄 스크립트를 가지고 있습니다

#!/usr/bin/perl
use strict; 
open my $df, '<', 'file.txt' or die "open: $!\n";
my %h;
while (<$df>) {
    $h{$_}++ for split /\s+/;
    END{
        for (keys %h){
            print $_, "=", $h{$_};
            print "\n";
        }
     } 
}

파일에 있는 각 단어의 발생 횟수를 인쇄합니다. 몇 가지 질문이 있습니다.

1) 사용자가 매개변수를 파일 이름으로 사용하도록 하여 이 스크립트를 동적으로 만드는 방법

지금:

perl script.pl

원함:

perl script.pl fileName

2) 출력물을 내림차순으로 정렬하는 방법은 무엇입니까?

참고: 발생을 기준으로 정렬하고 싶습니다.

답변1

나는 무엇을 할 것인가:

#!/usr/bin/perl
use strict;
my %h;
while (<>) {
    $h{$_}++ for split /\s+/;
    END{
        for (sort { $h{$b} <=> $h{$a} } keys %h){
            print $_, "=", $h{$_};
            print "\n";
        }
     }
}

그래서:

./script input_file

관련 정보