Very similar to Changing a single byte in a file in C , but in Perl instead of C.
How to open a binary file in Perl, change ONLY the first byte and write it back?
open my $fh, '+<', $file or die "open failed: $!\n"; my $byte; sysread($fh, $byte, 1) == 1 or die "read failed: $!\n"; seek($fh, 0, 0); syswrite($fh, $new_byte) == 1 or die "write failed: $!\n"; close $fh or die "close failed: $!\n";
Many ways to do this. An effective way is to open the file in random access mode with open $fh, '+<':
open $fh, '+<'
my $first_byte = chr(14); # or whatever you want the first byte to be open my $fh, '+<', $the_file; seek $fh, 0, 0; # optional - cursor is originally set to 0 print $fh $first_byte; # could also use write or syswrite functions close $fh;