How can I open a binary file in Perl, change ONLY the first byte, and write it back out?

binaryfiles, perl

Solution

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"; 

Problem

Very similar to Changing one byte in a file in C, but in Perl instead of C. How can I open a binary file in Perl, change ONLY the first byte, and write it back out?

Original source

Related problems