I guess your post is a continuation of find the xml files. Why didn't you tell us that?

You have all parts ready, but you will have to combine them differently. The problem in your code is that you read your file line by line in the

while (<IN>) { ... }
loop, and I assume that your XML file contains the empty book tag and Sydney on two different lines.

There are two approaches to solve this:

  1. For large files: Read the file line by line and remember for each file whether you've seen an empty book tag, and also remember whether you've seen Sydney. After you've read through the file, look whether you've seen both.
  2. For small files: Read the file as a whole into one scalar and check whether the scalar contains both, the book tag and Sydney.
  3. (There's always a third option) Use a proper XML parser, and XPath queries to check whether there are //book[text()=""] tags and //text()="Sydney" nodes. This is the recommended and least fragile solution.

For the "case insensitive" part, see perlre.


In reply to Re: Search in file by Corion
in thread Search in file by Anonymous Monk

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.