Я пытаюсь написать скрипт, который бы получил позицию "|" персонаж и следующий "|" и сохраните символы между этими двумя позициями из каждой строки в массив.
Файл:
| A| D| MUL|
| D| I| |
| D| V| |
ожидаемый результат: ADD DIV MUL
Я попробовал приведенный ниже код , могут быть некоторые проблемы в циклах while и $ prev_pos, установленном в 0.
open ($file, "<$i") or die "couldn't open list";
my $prev_pos=0;
my @store;
my $char ;
while(my $line=<$file>)
{
while ($line =~ /\|/g) {
my $pos=$-[0];
my $char = substr($line, $prev_pos+1, $pos-$prev_pos+1);
print "$char\n";
if($char =~ /\w/)
{
my $prev_char = @store[$pos+1];
@store[$pos+1] = join('',$prev_char,$char);
}
my $prev_pos = $pos;
}
}
}
}
close $file;
Пожалуйста, помогите.