#!/usr/bin/perl -w use strict; die "usage: $0 ", unless @ARGV == 3; my $searchFile = $ARGV[0]; my $searchPattern = $ARGV[1]; my $replacePattern = $ARGV[2]; my $tempFile = 'tmp$$'; open FILE, $searchFile #opens file in read-only mode or die "Cannot open $searchFile in read-only mode. $!\n"; open TMP, '>'.$tempFile or die "Cannot create temp file. $!\n"; while () { chomp; if (/$searchPattern/i) { print "Match found...replacing at line $.\n"; $_ =~ s/$searchPattern/$replacePattern/i; print TMP $_."\n"; }else { print TMP $_."\n" } } close FILE; close TMP; unlink $searchFile; rename $tempFile, $searchFile;