Я сделал пару изменений:
- Я добавил
chomp
, чтобы удалить символ \n
в конце каждой строки.Это может не иметь никакого значения, но это может.Помните, что когда вы читаете во вводе, он может содержать символ \n
в конце. - Я добавил
$code++;
.
Одна из приятных особенностей Perl заключается в том, чтоэто довольно умно об автоинкрементных вещах.Вы пытаетесь автоматически увеличивать что-то с буквами в нем, и Perl предполагает, что вы хотите обновить это по алфавиту.
Таким образом, я просто устанавливаю $n_code
и $p_code
в «a», и позволяю Perl обрабатывать
Вы не очень ясно поняли, что искали, поэтому я надеюсь, что это именно то, что вы имели в виду.
В следующий раз включите некоторые примеры ввода и вывода.Полдюжины строк каждого были бы очень полезны.
#!/usr/local/bin/perl
use warnings;
use strict;
my $inputfile = "file1.txt";
open FH,$inputfile;
my @results = <FH>;
close FH;
print "\n---------type n--------------\n" ;
my $n_code = "$a";
foreach my $line (@results) {
chomp $line; # Remove possible NL
if ($line =~ m/(^Mgn\d\.qna.*)/i)
{
print "$1 $n_code\n";
$n_code++; #Increment code to next alphabet character
}
}
print "\n---------type p--------------\n" ;
my $p_code = a;
foreach my $line (@results) {
chomp $line; #Remove possible NL
if ($line =~ m/(^Mgp\d\.qpa.*)/i)
print "$1 $p_code\n";
$p_code++; #Increment code to next letter of alphabet
}
}