尝试使用“ [”和“]”打开txt文件时出现问题

时间:2019-03-15 08:57:13

标签: string perl

当我尝试用Perl打开.txt文件时遇到问题。

文字基本上是:

function(1,1,[5,-5])

我想打印这一行。但是,它不会打印任何内容。

我使用的代码如下:

sub open_txt {
# Open a txt file and return then content in an array
my $filename = $_[0];
my @lines;
my $index_row = 0;

open(my $fh, '<:encoding(UTF-8)', $filename) or die "Could not open file '$filename' $!";
# open(my $fh, '<:encoding(iso-8859-7)', $filename) or die "Could not open file '$filename' $!";
    while (my $row = <$fh>) {
        chomp $row;
        $lines[$index_row] = $row; 
        $index_row = $index_row + 1;
    }

return @lines;
}

my $filename = 'test.txt';
my @lines = open_txt($filename);
while (my $row = <@lines>) {
    $index_row = $index_row + 1;
    print "[debug] $row\n";
}

在这些情况下,我会得到打印:

function(1,1,[5,-5)function(1,1,5,-5])function(1,1,[]),但不适用于function(1,1,[5,-5])function(1,1,[,])function(1,1,[ ])

有什么主意吗?

1 个答案:

答案 0 :(得分:3)

while (my $row = <@lines>) {

表示

while (my $row = glob(qq<@lines>)) {

您应该使用

for my $row (@lines) {