#!/usr/bin/perl -w # changes a given line holding PATTERN to hold STRING. # usage: cline PATTERN STRING FILE [FILE...] use Tie::File; use strict; my $file; my $k; my @lines; my $pat = shift || die "no pattern"; my $str = shift || die "no string to change"; foreach $file (@ARGV) { @lines = (); tie(@lines, 'Tie::File', "$file") or die "$file: can't update"; $k = 0; for (@lines) { if (/$pat/) { s/$pat/$str/g; $lines[$k] = $_; } $k++; } untie @lines; } exit(0);