Выражения внутри while можно упростить до s///, без "$_ =~". Какая семантика у "$_ =~ s///g;"? В скобках и не должно удаляться.
5 апреля 2015 г., 18:02 пользователь Алексей Мышкин <[email protected]> написал: > Есть подозрение что жадный квантификатор берёт всё что может, и строке за > скобками уже ничего не остаётся. > > 5 апреля 2015 г., 15:42 пользователь Кузьменко Константин <[email protected]> > написал: > >> Добрый день Moscow.pm >> Не могу понять регулярки перл! >> >> #!/usr/bin/perl >> >> use strict; >> use warnings; >> use utf8; >> use open qw/ :encoding(utf8) :std /; >> #use open qw/ :encoding(cp1251) :std /; >> >> my @onfil = @ARGV; >> open(INFIL, "<:encoding(cp866)", $onfil[0]) >> or die "NO STANDART $!"; >> >> >> while (<INFIL>) { >> $_ =~ s/\h+//g; >> $_ =~ s/\|/;/g; >> $_ =~ s///g; >> $_ =~ s/^(.*;).*;.*;.*;.*;.*;(.*;.*;.*;.*;.*;.*;)$//g; # Не >> удаляется в скобках >> print; >> } >> >> close INFIL; >> >> __END__ >> >> Может что нибудь посоветуете >> зы: Z yjdbxjr d Зукл >> -- >> Специалист IT, GNU, FLOSS, Open Source >> Моб: +7 (951) 131 33 90 >> С уважением, >> Кузьменко Константин Викторович >> >> >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org >> >> > > > -- > С уважением, > Мышкин Алексей. > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
