поэтому я создал этот скрипт ниже для моего назначения, он запрашивает текстовый файл и проверяет частоту слов и перечисляет 10 слов, которые появляются чаще всего.Все работает нормально, но мне нужно, чтобы этот сценарий мог запускаться через командную строку, а также через стандартный ввод.
Так что мне нужно иметь возможность написать 'perl wfreq.pl example.txt' иэто должно запустить скрипт, а не задавать вопрос для текстового файла.Я не уверен, как это сделать на самом деле, я думаю, что мне может понадобиться цикл while, который пропускает STDIN, если вы дадите ему текстовый файл в командной строке терминала.
Кто-нибудь может помочь?
#! /usr/bin/perl
use utf8;
use warnings;
print "Please enter the name of the file: \n" ;
$file = <STDIN>;
chop $file;
open(my $DATA, "<:utf8", $file) or die "Oops!!: $!";
binmode STDOUT, ":utf8";
while(<$DATA>) {
tr/A-Za-z//cs;
s/[;:()".,!?]/ /gio;
foreach $word (split(' ', lc $_)) {
$freq{$word}++;
}
}
foreach $word (sort { $freq{$b} <=> $freq{$a} } keys %freq) {
@fr = (@fr, $freq{$word});
@ord = (@ord, $word);
}
for ($v =0; $v < 10; $v++){
print " $fr[$v] | $ord[$v]\n";
}