ファイル名をパラメータとして使用し、Perlで降順にソートしますか?

ファイル名をパラメータとして使用し、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

おすすめ記事