#!/usr/bin/perl -w
#
# $Revision: 1.3 $ $Date: 2012-07-26 17:11:47-04 $
# $Source: /home/vogelke/bin/RCS/aline,v $
# $Host: sys7.com $
# $UUID: 82f038b3-02c0-3434-b32d-c788a5c41689 $
#
#<aline: adds a string after a given line for one or more files.
# usage: aline PATTERN STRING FILES

use Tie::File;
use strict;

my $file;
my $k;
my @lines;
my $pat = shift || die "no pattern";
my $str = shift || die "no string to add";

foreach $file (@ARGV) {
    tie(@lines, 'Tie::File', "$file") or die "$file: can't update";
    $k = 0;

    for (@lines) {
        if (/$pat/) {
            splice (@lines, $k+1, 0, $str);
            last;
        }
        $k++;
    }

    untie @lines;
}

exit(0);
