имя файла в качестве аргумента и сортировать по убыванию в 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) Как я могу сортировать выходные данные по убыванию?

ПРИМЕЧАНИЕ. Я хочу сортировку в соответствии с появлением.

Что я буду делать:

 #!/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