#/usr/bin/perl my $search = 'TTGACA'; open FILE, $ARGV[0] or die "can't open file\n"; local $/; $data = <FILE>; $data =~ s/[^GNUCAT]//g; # or similar ;-) close FILE; my $count = () = $data =~ m/$search/g; print "String $search occured $count times\n\n";

Oh you should get into the habit of closing your files after you open them. Also use strict and use warnings are good habits. Use string warnings and diagnostics or die Hard to justify for trivial cases like this but add another 50 lines and you will be glad you did.

Update

Zaxo's index method is far more memory efficient and almost certainly faster way to do this (for an exact match).

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print


In reply to Re: search for a sequence of chars in a string by tachyon
in thread search for a sequence of chars in a string by imlou

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.