The program below works as intended. It recursively searches directories and changes any instances of "spike.domain" to "spike.lib.domain" without making a backup (I will already have the directory backed up). There are two things I would like to have the program do that I'm having trouble with.
1) I would like to make it skip processing itself. 2) I would like it to print out the name of changed files. Two of my best attempts to make the modifications: 1) Changing the "if" statement to "if ((-f) && (! $0))" To me that says, "if it is a file and not program name." Trouble is when I run it no substitutions are made in the file. No errors reported either. 2) I have added, just outside the loop - print "Changed: $File::Find::name"; This reports all files as having been changed instead of just files changed. Any help appreciated:) #!/usr/bin/perl -i use strict; use warnings; use File::Find; my $dir = "."; find(\&edit_files, $dir); sub edit_files { if (-f) { my $file = $_; local @ARGV = ($file); while(<>) { s/spike\.domain/spike\.lib\.domain/; print; } } } -- To know the truth is to distort the Universe. Alfred N. Whitehead (adaptation) -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]