$original = &promptUser("Enter original filename"); $modified = &promptUser("Enter modified filename"); open($ORIG, "$original"); binmode($ORIG); open($MOD, ">$modified"); binmode($MOD); $/ = "\x00"; while (<$ORIG>) { $count = (($change = $_) =~ s/(\x33\x33\x39\x39.*?\x00)/"\x00" x length($1)/e); if ($count == null) { print $MOD $_; } else { $answer = &promptUser("Modify $1?"); if ($answer == "y") { print $MOD $change; } else { print $MOD $_; } } } close $MOD; close $ORIG; sub promptUser { local($promptString,$defaultValue) = @_; if ($defaultValue) { print $promptString, "[", $defaultValue, "]: "; } else { print $promptString, ": "; } $| = 1; # force a flush after print $_ = ; # get the input from STDIN chomp; if ("$defaultValue") { return $_ ? $_ : $defaultValue; # return $_ if it has a value } else { return $_; } }