2011-01-07 3 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 line 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、私はあなたの助けを借りてくれてありがとう、 "\\ n"の代わりに/ \\ n /を使ってくれてありがとう、 – cam

+0

私のために働いているので、今私の回答にファイル全体を含めています(出力:test1)。 – nebulus

3

あなたは使用することができます

@arr = split /\Q\n/, $line; 
関連する問題