Count all occurrences of characters from a given set in a string.
In the code below $CharSet is the set of characters to count. $SearchStr is the string to count them in.
my $Set = qr/[^$CharSet]/; length join "", split $Set, $SearchStr;
Wrapped up in a rather more general sub:
sub CountSetChars { my $Count; my $CharSet = shift; my $Set = qr/[^$CharSet]/; my $Param; while ($Param = shift) { if (defined @$Param) {map {$Count += CountSetChars ($CharSet, $_)} @$Param;} elsif (ref $Param) {$Count += length join "", split $Set, @$Param;} else {$Count += length join "", split $Set, $Param;} } return $Count; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: count subset of chars in a line
by Zaxo (Archbishop) on Jun 22, 2005 at 03:49 UTC | |
by GrandFather (Saint) on Jun 22, 2005 at 04:01 UTC |
Back to
Cool Uses for Perl