in reply to Re^2: perl oneliners
in thread perl oneliners
Let's suppose you write your script file like this (I prefer using curly braces around regexes when the slash is part of the pattern or replacement):
When you put that script file in a directory other than the one that you provide as a command-line arg when you run it (or if you put it in the same directory, but give it a name that does not end in ".pl"), the script will not edit/rewrite itself.#!/usr/bin/perl use strict; use warnings; # check for valid usage (user must provide a directory path): (@ARGV == 1 and -d $ARGV[0]) or die "Usage: $0 /path/to/scripts\n"; my $path = shift; { local $/; # set input record separator to undef (slurp-mode read +ing) for my $file (<$path/*.pl>) # use a file glob { open( F, "<", $file ) or next; $_ = <F>; close F; s{/usr/bin/perl}{/test/test/test}g; s{/ggg/ggg/www}{/zzz/zzz/zzz}g; s{/jjj/jjj/jjj}{/aaa/aaa/aaa}g; open( F, ">", $file ) or die "$file: $!"; print F; close F; } }
|
|---|