Выражения внутри 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

Ответить