#!/usr/bin/perl
# usage: ./script.pl filename search replacement
$^I = '.orig'; # create backup of file at file.orig
my $search = $ARGV[1];
my $replace = $ARGV[2];
my $difference = length $search - length $replace;
@ARGV = ($ARGV[0]);
while (<>) {
s~s:([0-9]+):"$search([^"]*)~"s:".($1-$difference).":\"$replace$2"~ge;
print;
}