Проблема при попытке открыть txt файл с "[" и "]" - PullRequest
0 голосов
/ 15 марта 2019

У меня проблема при попытке открыть файл .txt с помощью Perl.

Текст в основном:

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 Ответ

3 голосов
/ 15 марта 2019
while (my $row = <@lines>) {

означает

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

Вы должны использовать

for my $row (@lines) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...