[Moscow.pm] туплю с регуляркой , если кто знает , помогите плиз: как заменить бэкслэш на слэш?
Dmitry Arsentiev
dmarsentev на gmail.com
Чт Ноя 6 11:57:57 PST 2008
> $ cat -n test.pl
> 1 #!/usr/bin/perl
> 2
> 3 use Encode::Escape;
> 4
> 5 open my $f, '<', 'test.txt' or die;
> 6 my $a = do { local $/; <$f> }; # Считать целиком!
> 7
> 8 print $a;
> 9 print decode 'ascii-escape', $a; # Раскрыть \xxx
>
> $ ./test.pl
> image\101
> image\102
> image\103
>
> imageA
> imageB
> imageC
Спасибо, Алексей.
Вы правы.
Попробую изменить способ чтения из файла, может поможет.
6 ноября 2008 г. 22:26 пользователь Alexey Beshenov <al на beshenov.ru> написал:
> On Thursday 06 November 2008 22:07:13 Dmitry Arsentiev wrote:
>> Считываю я из файла по рабоче-крестьянски. вот так:
>> my @a = <F>;
>> my $a = "@a";
>
> Лучше задать соотв. значение $/ --- см. perldoc perlvar.
>
> my $a = do { local $/; <$f> };
>
> Это если файл заведомо маленький...
>
>> В итоге получаю весь текст из файла в интерполируемой строке.
>> Вопрос: умеете ли вы как-то считывать весь файл в переменную,
>> чтобы в этой переменной содержалась неинтерполируемая строка?
>>
>> Я не умею.
>
> Вы ничего не путаете? Можно пример кода?
>
> $ cat -n test.txt
> 1 image\101
> 2 image\102
> 3 image\103
>
> $ cat -n test.pl
> 1 #!/usr/bin/perl
> 2
> 3 use Encode::Escape;
> 4
> 5 open my $f, '<', 'test.txt' or die;
> 6 my $a = do { local $/; <$f> }; # Считать целиком!
> 7
> 8 print $a;
> 9 print decode 'ascii-escape', $a; # Раскрыть \xxx
>
> $ ./test.pl
> image\101
> image\102
> image\103
>
> imageA
> imageB
> imageC
>
> --
> Setting Orange, Aftermath 18 YOLD 3174
> Alexey Beshenov http://beshenov.ru/
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
Подробная информация о списке рассылки Moscow-pm