[Israel.pm] count chars

Amir E. Aharoni amir.aharoni at gmail.com
Mon Sep 3 03:38:05 PDT 2007


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?

-- 
Amir Elisha Aharoni
words: http://aharoni.wordpress.com/
music: http://www.myspace.com/tzabari/



More information about the Perl mailing list