in reply to Conversion of unix LF to DOS LF issues
You didn't specify on which system the script is running.
-
# Outputs file in DOS format. # Accepts input files in unix format. # Runs on DOS. { my $fh_in = upload('filepath'); open my $fh_out, ...; print $fh_out while <$fh_in>; }
-
# Outputs file in DOS format. # Accepts input files in unix format. # Runs on unix. { my $fh_in = upload('filepath'); open my $fh_out, ...; while (<$fh_in>) { chomp; print $fh_out "$_\r\n" } }
As a bonus, here are more universal versions:
-
# Outputs file in DOS format. # Accepts input files in unix, DOS and Mac formats. # Runs on unix, DOS and Mac. my $text; { my $fh_in = upload('filepath'); binmode($fh_in); local $/; $text = <$fh_in>; } $text =~ s/\015\012?|\012/\015\012/g; { open my $fh_out, ...; binmode($fh_out); print $fh_out $text; }
-
# Outputs file in local format. # Accepts input files in unix, DOS and Mac formats. # Runs on unix, DOS and Mac. my $text; { my $fh_in = upload('filepath'); binmode($fh_in); local $/; $text = <$fh_in>; } $text =~ s/\015\012?|\012/\n/g; { open my $fh_out, ...; print $fh_out $text; }
Update: Cleaned up my booboos.
In Section
Seekers of Perl Wisdom