这是另一个奇怪的事情。我有这个代码和一个文件。
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行。
过去有没有人遇到过类似的问题?
答案 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;