У меня есть этот скрипт 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