Writing the Modified Files Back to Disk
Just one more component is needed in our power-editing script: the part where it takes the modified content from the HTML file and writes it back out to disk, replacing the previous version of the file. Before doing that, though, let’s run a test by having the script print out the modified files to our screen, so we can check to make sure the correct changes are being made. Once we’re satisfied with that, we can make the final modifications to the script that will cause it to actually update the files on disk.
Below the while loop that cycles through the
reading of each file’s contents, and below the close IN statement but before the right curly brace that ends the
larger foreach loop that cycles through each file,
we’ll add the following to the script:
# print $content, to check the changes print "File $file, after changes:\n\n$content\n";
Now you can run the script at the command line, piping its output to more, and page your way through the output, checking to make sure that only the changes you intended are being made:
[jbc@andros testsite]$ fix_links.plx *.html | more
File form_to_email.html, after changes:
<HTML>
<HEAD>
<TITLE>This is the title</TITLE>
</HEAD>
<BODY>
(etc.)Once you’re happy with the way that output looks, you can
comment out that print statement and add the
following lines just below it:
open OUT, "> $file" or die "can't open $file for writing: $!"; print OUT $content; close OUT or die "can't close $file after writing: ...