# Set the input and output filenames my $ifilename = 'file.in'; my $ofilename = $ifilename . '.bin'; # Open the files and ensure we handle them as binary data open my $ifile, '<', $ifilename or die "could not open input file $!"; open my $ofile, '>', $ofilename or die "could not open output file $!"; binmode $ifile; binmode $ofile; # Read the binary data $_ = do { local $/; <$ifile> }; # Replace the initial bytes with zero s/^(.*?)(\x4F\xFF)/"\x0" x length($1) . $2/se; # Store the result in the output file print $ofile $_; # Tidy up close $ifile; close $ofile;