open (FR, '<', '$filename') or print "Could not read $filename\n" && return; my @lines = ; close (FR); open (FW, '>', '$filename') or print "Could not open for write $filename\n" && return; for ( @lines ) { s/$ipold/$ipnew/g; print FW $_; } close FW;