Perl provides a rich language for searching for patterns within strings via its Regular Expression engine.
perldoc perlre
This will give you way more info than you can absorb quickly. Now, based on your original post, you want to iterate over an array and check each element for a pattern (in this case, a string) and do something each time you find a match.
for my $line (@input) {
if ($line =~ /$pattern/) {
# Do something
print "$line contains $pattern\n";
}
}
If you just want to get a count of lines that contain
$pattern, Perl has a
grep function (see
perldoc -f grep for more on
grep). It returns a list of matches based on some test. When evaluated in scalar context, the length of that list, or the number of matches, is returned.
my $match_cnt = grep { $_ =~ /$pattern/ } @input;
With Perl, there is always more that one way to do things, but some are obviously better and more appropriate based on your needs.
Ivan Heffner
Sr. Software Engineer, DAS Lead
WhitePages.com, Inc.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.