2011-01-07 37 views
3

這是另一個奇怪的事情。我有這個代碼和一個文件。將問題分解爲換行符的問題

use strict; 
use warnings; 

my $file = "test.txt"; 
my @arr; 

open (LOGFILE, $file); 
while (my $line = <LOGFILE>)  
{ 
    #print $line; 
    @arr = split("\n", $line); 
} 
close LOGFILE; 

print $arr[1]; 

的test.txt包含

\ ntest1 \ ntest2 \ ntest3

以下是錯誤我得到:在 打印

使用未初始化值test.pl行15.

過去有沒有人遇到類似的問題?

回答

5

split需要一個正則表達式(我相信你的字符串被強制爲一個正則表達式)。也許像split(/\\n/, $line)

use strict; 
use warnings; 

my $file = "test.txt"; 
my @arr; 

open (LOGFILE, $file); 
while (my $line = <LOGFILE>) 
{ 
    print $line; 
    @arr = split(/\\n/, $line); 
} 
close LOGFILE; 

print $arr[1]; 
+0

該文件是單行,也\\ n不工作。 – nebulus 2011-01-07 20:48:30

3

你可以使用:

@arr = split /\Q\n/, $line;