On Mon, 3 Sep 2007 13:38:05 +0300 "Amir E. Aharoni" <[EMAIL PROTECTED]> wrote:
> What is the best way to count the number of times that a character
> appears in a string?
>
> Currently i do this:
>
> ----
> my $string = "abracadabra";
> my @matches = ($string =~ /a/g);
> print scalar @matches; # 5
> print "@matches"; # a a a a a
> ----
>
> Is there a way to do it without the intermediate array?
>
> This doesn't work:
>
> ----
> my $string = "abracadabra";
> print scalar ($string =~ /a/g); # prints 1!
> ----
>
> I can use this:
>
> ----
> my $matches = ($string =~ s/(a)/$1/g);
> ----
>
> It replaces the characters with itself and returns the number of
> substitutions, but it doesn't improve readability.
>
> Any other ideas?
>
Here's another, is ugly tho
my $string = "abracadabra";
print scalar(@{[$string=~/a/g]});
--
Tal Kelrich
PGP fingerprint: 3EDF FCC5 60BB 4729 AB2F CAE6 FEC1 9AAC 12B9 AA69
Key Available at: http://www.hasturkun.com/pub.txt
----
Agree with them now, it will save so much time.
----
signature.asc
Description: PGP signature
_______________________________________________ Perl mailing list [email protected] http://perl.org.il/mailman/listinfo/perl
