$bytes =~ s/(?:[^\x0D]|\x0D(?!\x0A))*//;
####
$bytes =~ s/.*?(?=\x0D\x0A)//;
####
#!/usr/bin/perl -w
use strict;
my $in_file = 'file1.txt';
my $out_file = 'file2.txt';
open IN, "< $in_file" or die "Can't open $in_file for reading: $!";
open OUT, "> $out_file" or die "Can't open $out_file for writing: $!";
binmode IN; # in case we're on a Windows system
binmode OUT;
my $buffer;
my $flag = 0;
my $last_byte = 0;
while ( read( IN, $buffer, 1024 ) ) {
if ( $last_byte and substr( $buffer, 0, 1 ) == 0x0A ) {
$flag = 1;
$buffer = substr( $buffer, 1 );
} else {
$last_byte = 0;
}
if ( $buffer =~ /\x0D\x0A/ ) {
$flag = 1;
$buffer =~ s/(?:[^\x0D]|\x0D(?!\x0A))*//;
}
$last_byte = 1 if substr( $buffer, -1 ) == 0x0D;
last if $flag;
}
if ( $flag ) {
print OUT $buffer or die "Could not write data to $out_file: $!";
while ( read( IN, $buffer, 1024 ) ) {
print OUT $buffer or die "Could not write data to $out_file: $!";
}
} else {
warn "Did not find '0x0D 0x0A' in $in_file";
}