I see that have have started a number of threads related to this project and that you have written more code since this post.

I think poj nailed your current problem at Re^5: Unable to rename the contents of the file using perl?. You have to de-reference $string which is a reference a string. In a situation like your code:

sub write_new_file { my ( $fn, $str ) = @_;
$fn is a simple string, but $str is actually a reference to a string. I personally would use different variable names to indicate the "type", e.g.
my ($fn, $str_ref ) = @_; # or $ref_str, $r_str or other possibilities
This sort of thing can help remind you that to print the contents of $string, you need print $$string instead of just print $string

If you want process files than end in ".config", but not those like "XXX_rev4.config", a simple way would be to just put

next if $name =~ /rev\d+\.config$/; if ($name =~ /\.config$/) {blah..blah}

In reply to Re^3: How to match the file and rename the contents in the .config files of directories and subdirectories using perl? by Marshall
in thread How to match the file and rename the contents in the .config files of directories and subdirectories using perl? by finddata

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.