#!/usr/bin/perl -w
#
# $Revision: 1.3 $ $Date: 2012-07-26 17:11:47-04 $
# $Source: /home/vogelke/bin/RCS/cline,v $
# $Host: sys7.com $
# $UUID: 1ca03bc4-37d7-333d-b9a3-b5b44da73a49 $
#
#<cline: changes a given line in a file 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);
