有问题分裂换行符周围的刺痛

时间:2011-01-07 20:32:48

标签: perl io newline

这是另一个奇怪的事情。我有这个代码和一个文件。

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行。

过去有没有人遇到过类似的问题?

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分:3)

您可以使用:

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