in reply to My pattern for "in-place edit" for many files
in thread One-shot code critique

I like this, but in the version I just added to my toolbox I made one small change: die if there's nothing to replace in @ARGV. Otherwise this script just sits there waiting for STDIN. Being not all that wise about the diamond operator it took me a while to figure out what was going on.
my @starters = @ARGV ? @ARGV : ('./beginning_includes'); #current di +rectory @ARGV = (); find sub { push @ARGV, $File::Find::name if $File::Find::name =~ /.txt$/i; # +or whatever condition here }, @starters; die "nothing to replace" unless @ARGV; }