in reply to modifying the search pattern of a file.
Still seems a bit wordy. :)
use strict; use warnings; my $template = "index.txt"; open(FILE, "+<$template") or die "Could not read $template: $!\n"; local $/=""; ## Or even chop $/; !!! s#(<% INCLUDE file)(1|2)(\.txt %>)#"$1".($2%2?"2":"1")."$3"#eg, $/ .= +$_ while <FILE>; seek(FILE,0,0); print FILE $/; close(FILE); exit;
Some caveats: normally a truncate(FILE, tell(FILE)); would be in order before the close statement, but since we are replacing one character with another, we can not worry about it here. This is not necessarily the best way to do this, nor the safest, nor the most portable, but it is short and hopefully someone will learn something from this other way of doing it.
And, yes, it could easily become a command-line perl -e as well. :)
|
|---|