Как сделать счетчик частоты слова чувствительным к регистру, используя интерфейс командной строки в Perl?


0

Итак, у меня есть этот Perl Script, который является счетчиком частоты слов. Но теперь я должен изменить этот скрипт и сделать его чувствительным к регистру. Поэтому, если пользователь добавляет -i в командную строку, сценарий должен сравниваться с учетом регистра. Если -i не введен в командной строке, он должен сравниваться старым способом с учетом регистра.

Вот сценарий:

#!/usr/bin/perl

#words hash
my %words;

while( my $a = <> )
{
    chomp $a;
    foreach my $word ( split ( /\s+/, $a ))
    {
        $words{$word}++;
    }
}

foreach $word (keys %words)
{
    print "<$word> appears $words{$word} times\n";
}

Вы хотите, чтобы use Getopt::Stdпомочь вам с вашим вариантом разбора.
Гленн Джекман

Ответы:


0

Вы хотите, чтобы use Getopt::Stdпомочь вам с вашим вариантом анализа и установить $case_insensitive1, если -iдано.

А потом

foreach my $word ( split ( /\s+/, $a ))
{
    if ($case_insensitive) 
    {
        $words{lc $word}++;
    }
    else
    {
        $words{$word}++;
    }
}

или, более кратко

foreach my $word ( split ( /\s+/, $a ))
{
    $words{$case_insensitive ? lc $word : $word}++;
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.