2011-01-07 2 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

+0

@seaworthy, 나는 나를 위해 일하고 있기 때문에 지금 내 응답에 전체 파일을 포함하고있다. (출력 : test1) – cam

+0

감사의 도움을 주셔서 감사합니다. "\\ n"대신/\\ n /을 사용해야했습니다. – nebulus

3

당신은 사용할 수 있습니다

@arr = split /\Q\n/, $line; 
관련 문제