2013-11-21 38 views
2

我有一个程序在perl中从控制台传递一个字符串。如果我把这个字符串\ r \ n的控制台,它确实为它应该从字面上店\ r \ n到控制台的参数,因为它是建立像这样:Perl解释器:将' n'转换为换行符?

my $str = '\r\n'; 

如何使$打入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!

回答

8

您可以使用unbackslash函数String::Escape来执行此操作:

use String::Escape qw(unbackslash); 

my $str = 'Hello\r\nWorld\r\n'; 

print unbackslash($str);