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.