[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