BagHash
を使って正規表現の一致を数えようとしていて、奇妙な結果を得ようとしています。Perl6:BagHash/Matchingについて混乱しています
my $fh = open "versions.txt";
my $versions = BagHash.new();
while (defined my $line = $fh.get) {
my $last = '';
if $line ~~ /(\d+)\.?(\d*)/ {
say 'match ' ~ $/[0];
if $last !eq $/[0] {
say 'not-same: ' ~ $/[0];
$versions{$/[0]}++
}
$last = $/[0];
}
else {
$last = '';
}
}
say 'count: ' ~ $versions.elems;
出力は次のとおりです。
match 234
not-same: 234
match 999
not-same 999
count: 1 # I expect 2 here.
私が働いているテストケースがある:
version history thingy
version=234.234
version=999
私は何をしないのですか?
'!='は両方の引数を 'Num'に強制します。あなたはそれが欲しいですか? –
私はしませんでした!しかし、それは問題を引き起こしているものではないようです。私はちょうど実行した新しいバージョンを反映するように編集しました。 –