If I understand what you're trying to do in this code, I think the following should work, although I included the standard disclaimer that this is not tested, and I may have totally misunderstood your intent.

This code looks at each line of the input:

# always check the results of an open() open (FILE, $filename) or die "unable to open $filename for input: $!" +; while (<FILE>) { # [1] omit line from output if it matches: # (make `[^.]*' more specific if only certain words should match) next if m~<!--\s*#include virtual\s*=\s*"/global_nav_[^".]*.ssi"\s*- +->~; chomp; # [2] if (m!<body[^>]*>!i ... m!</body[^>]*>!i) { # modify body lines only # [3] replace .html with .asp in anchors in this line s~(href\s*=\s*") # capture beginning of anchor in $1 (?!http://) # _not_ followed by http:// ([^"]+) # capture base of filename in $2 \.html # match .html ~${1}${2}.asp~gix; # make substitution, global } print OUTFILE; }

UPDATE: minor changes to substitution pattern. Thanks to japhy my regex hero.


In reply to Re: Removing include files by converter
in thread Removing include files 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.