2013-11-21 39 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);