开发者

How to remove ^M (CRLF) from w file sent from Windows to linux FTP server in perl?

I'm sending a comma delimited file (in ASCII) via Net::FTP in perl (generated on Windows) to a linux based FTP account. The issue is that my file on the linux side has ^M at the end of each line. I know I can remove these by calling a dos2unix" command on that file but how do I remove ^M on the windows side so that I send a correct file in the first place.

I tried doing the below but that doesn't affect the file o开发者_如何学Gon the linux side.

$content =~ s/^M//g;


If you had "^","M", then s/\^M//g would work. ("^" is special in regex patterns.) If you had a CR, then s/\r\n/\n/g (or just s/\r//g) would work.

If neither work, please provide a portion of "od -c" of your data file.


When you are writing the file:

open my $fh, '>:raw', $file or die "could not open $file: $!\n";

See perldoc -f binmode.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜