perlfaq nodetype
faq_monk
<P>
There are a number of ways, with varying efficiency: If you want a count of a certain single character
<FONT SIZE=-1>(X)</FONT> within a string, you can use the
[perlman:perlop|tr///] function like so:
<P>
<PRE> $string = "ThisXlineXhasXsomeXx'sXinXit":
$count = ($string =~ tr/X//);
print "There are $count X charcters in the string";
</PRE>
<P>
This is fine if you are just looking for a single character. However, if
you are trying to count multiple character substrings within a larger
string, [perlman:perlop|tr///] won't work. What you can do is wrap a
<CODE>while()</CODE> loop around a global
pattern match. For example, let's count negative integers:
<P>
<PRE> $string = "-9 55 48 -2 23 -76 4 14 -44";
while ($string =~ /-d+/g) { $count++ }
print "There are $count negative numbers in the string";
</PRE>
<P>