CGI/Perl Guide | Learning Center | Forums | Advertise | Login
Site Search: in

  Main Index MAIN
INDEX
Search Posts SEARCH
POSTS
Who's Online WHO'S
ONLINE
Log in LOG
IN

Home: Perl Programming Help: Frequently Asked Questions:
How can I count the number of occurrences of a sub

 



Jasmine
Administrator

Jan 19, 2001, 2:52 PM

Post #1 of 1 (2806 views)
How can I count the number of occurrences of a sub Can't Post

(From the Perl FAQ)

How can I count the number of occurrences of a substring within a string?

There are a number of ways, with varying efficiency: If you want a count of a certain single character (X) within a string, you can use the tr/// function like so:

Code
    $string = "ThisXlineXhasXsomeXx'sXinXit": 
$count = ($string =~ tr/X//);
print "There are $count X charcters in the string";

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, tr/// won't work. What you can do is wrap a while() loop around a global pattern match. For example, let's count negative integers:

Code
    $string = "-9 55 48 -2 23 -76 4 14 -44"; 
while ($string =~ /-\d+/g) { $count++ }
print "There are $count negative numbers in the string";


 
 


Search for (options) Powered by Gossamer Forum v.1.2.0

Web Applications & Managed Hosting Powered by Gossamer Threads
Visit our Mailing List Archives