#! /usr/bin/perl
use strict;
use warnings;
my @array = ('0'..'9');
print "Enter the inp No's : ";
while (($inp = <STDIN>) cmp "\n"){
}
angus > perl no.pl inp No を入力してください: 12123213123
私は、各数字が何回来るか、すべての数字の合計を見つけようとしています.各数字を分割してその出現を見つける方法
#! /usr/bin/perl
use strict;
use warnings;
my @array = ('0'..'9');
print "Enter the inp No's : ";
while (($inp = <STDIN>) cmp "\n"){
}
angus > perl no.pl inp No を入力してください: 12123213123
私は、各数字が何回来るか、すべての数字の合計を見つけようとしています.各数字を分割してその出現を見つける方法
$inp を宣言していません。また、あなたの使い方cmp
は奇妙で、シンプルne
で同じように機能し、誰も混乱させません。
空のパターンを使用して文字列を文字に分割split
し、ハッシュ内の出現回数をカウントできます。
#!/usr/bin/perl
use warnings;
use strict;
print "Enter the inp No's : ";
while ((my $inp = <STDIN>) ne "\n"){
my %digits;
$digits{$_}++ for split //, $inp;
for (0 .. 9) {
print "$_ ", $digits{$_} || 0, "\n";
}
}
ただし、正規の方法は、tr
演算子を使用することです。補間しないため、 eval を使用して内部の変数値を取得する必要があります。
#!/usr/bin/perl
use warnings;
use strict;
print "Enter the inp No's : ";
my %digits;
while ((my $inp = <STDIN>) ne "\n"){
for (0 .. 9) {
my $n = eval "\$inp =~ tr/$_//";
print "$_ $n\n";
}
}