我在perl中有一个程序,它从控制台传递一个字符串。如果我从控制台传递字符串\ r \ n,它会按原样执行并按字面意思将\ r \ n存储到控制台参数中,因为它是这样创建的:
my $str = '\r\n';
如何将$ str变成CRLF?例如;我怎么做
my $str = '\r\n';
到
my $str = "\r\n"; #<--- perl converts \r\n into a carriage return & line feed.
如何强制perl将从控制台传递的字符串转换为CRLF?
如果我不够清楚,让我举个例子:
my ($arg1, $arg2) = @ARGV;
print $arg1 . $arg2;
假设$arg1
已通过'Hello\r\n'
且$arg2
已通过'World!'
,则当我要打印Hello\r\nWorld!
时,它会打印Hello(newline)World!
答案 0 :(得分:8)
您可以使用String::Escape中的unbackslash
功能执行此操作:
use String::Escape qw( unbackslash );
my $str = 'Hello\r\nWorld\r\n';
print unbackslash($str);