所以我有这个 Perl 脚本,它是一个词频计数器。但现在我必须修改这个脚本,使它区分大小写。因此,如果用户在命令行中添加 -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";
}
答案1
你会想要use Getopt::Std
帮助您进行选项解析,如果给出则设置$case_insensitive
为 1 。-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}++;
}