Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> интерполяция метасимволов, как синтезировать операцию интерполяции 
:(
    Опции темы
1one
Дата 26.6.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Как с помощью регекспа заменить метасимволы перевода строки (\n) на _сам_ символ перевода строки (0xA), учитывая перекрывающиеся слеши ('\\\\n' будет '\\n')?
Т.е. сделать вручную то, что автоматически делается, например, строкой print "one\ntwo\\\\nthree" (вывод в STDOUT в двойных кавычках) (на выходе будет one
two\\nthree)

на примере кода:

#!/usr/local/bin/perl -w

use strict;

print "------ Original:\n";
print "one\ntwo\\\\nthree";

my $str = 'one\ntwo\\\\nthree';
$str =~ s/(?<!\\)\n/\n/;

print "------ Code:\n";
print $str;
PM MAIL   Вверх
Nab
Дата 26.6.2007, 15:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Так что именно должно получиться то?

Приведите пример выходной строки.


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
nitr
Дата 26.6.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



вариантов много - один из них:
Код

$str =~ s/[\\]+n/\n/g;



--------------------
PM   Вверх
1one
Дата 26.6.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Цитата(Nab @ 26.6.2007,  15:57)
Приведите пример выходной строки.

например,
есть строка 'one\ntwo\\nthree\\\nfour\\\\nfive'

на выходе будет:

one
two\nthree\
four\\nfive

т.е. то же самое, если бы вы вывели print "one\ntwo\\nthree\\\nfour\\\\nfive";
PM MAIL   Вверх
nitr
Дата 26.6.2007, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



а если бэкслеш как символ, то так:
Код

$str =~ s/\\n/\n/g;


З.Ы.: ответьте на вопрос Nab - для уточнения

Добавлено через 1 минуту и 14 секунд
вооо - теперь понято стало =)


--------------------
PM   Вверх
Nab
Дата 26.6.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(nitr @ 26.6.2007,  16:01)
вариантов много - один из них:
Код

$str =~ s/[\\]+n/\n/g;

nitr, ты чего?
самый простой способ, это:
Код

$str = "$str";
print $str;


 smile 


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
nitr
Дата 26.6.2007, 16:08 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Nab, уверен? smile)



--------------------
PM   Вверх
1one
Дата 26.6.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Nitr, Nab - не верно.

"$str" \n, которые уже были в $str не заменит на символы перевода строки

$str =~ s/[\\]+n/\n/g; - сотрет все предыдущие слеши (а надо их оставить)

повторюсь:
нужно сделать в точности так, как происходит вывод в STDOUT в двойных кавычках.

но нужно вывести не

print "one\ntwo\\nthree\\\nfour\\\\nfive";

, а

$str = '"one\ntwo\\nthree\\\nfour\\\\nfive"';
#здесь махинации по преобразованию двойных слешей в одинарные, и \n на 0xA (код симв. перевода строки)
print "$str";
PM MAIL   Вверх
Nab
Дата 26.6.2007, 16:37 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(nitr @  26.6.2007,  16:08 Найти цитируемый пост)
Nab, уверен? smile)

неееее, стыдно... :(
потому проверил, и могу сказать что задача не решаема в принципе smile
потому как интерпретация обратного слеша происходит и в одиночных кавычках...

то есть 
Код

$f = "\\n";
$g = '\\n';

print $f, $g;


выведет для обоих переменных одинаковый результат...
что означает в случае строки 

$str = 'one\ntwo\\nthree`, что она будет иметь вид
Код

one\ntwo\nthree

 дельнейшая обработка безсмысленна, потому как утеряна важная информация, и при интерполяции каким либо способом и первая \n и вторая дадут одинаковое вхождение... Здесь нужна предварительная обработка входных данных, тех которые ниразу не прошли интерпретацию процессором перла...



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
1one
Дата 26.6.2007, 16:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



2 Nab:

> Здесь нужна предварительная обработка входных данных, тех которые ниразу не прошли интерпретацию процессором перла...

Данные препроцессором перла не проверяются изначально.

Я выразился "так, как при выводе метасимволов в STDOUT в двойных кавычках" всего-лишь для того, чтобы было понятнее.

перефразирую мою задачку так:

Метасимволами являются '\' и '\n'.
В свою эчередь, их можно экранировать (чтобы они не обрабатывались как спец. символы), поставив перед ними еще один слеш.
Как сделать так, чтобы двойные слеши менялись на одинарные, а \n - на символ перевода строки. Причем замены эти, я так понял, должны идти только строго последовательно, тогда и получится "так, как в выводе в двойн. каычках в STDOUT"

Т.е.
есть у нас \\\\\\n
получим \\\n (двойные слеши заменились одинарными, а для n, в свою очередь, не осталось слеша впереди (т.к. поиск на предмет замен идет попарно по 2 символа), поэтому преобразование в символ перевода строки произведено не было).

-----
Вот и не соображу, как это регекспом выразить...
PM MAIL   Вверх
Nab
Дата 26.6.2007, 17:23 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



а зачем?

Проще эту работу поручить перлу...
Код

eval "\$str = \"$str\"";





--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
dimes
Дата 26.6.2007, 19:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 20.7.2004
Где: то около СПБ

Репутация: нет
Всего: 14



Nab
Главное что бы в тексте не встречалась спецуха типа '$' smile

По-моему первый вариант предложенный nitr, "$str =~ s/[\\]+n/\n/g;"
вполне жизнеспособный и быстрый. Или я что то не понимаю?

PM ICQ   Вверх
Nab
Дата 26.6.2007, 20:02 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(dimes @  26.6.2007,  19:09 Найти цитируемый пост)
Главное что бы в тексте не встречалась спецуха типа '$' smile

ну эт уже проблемы другого плана smile

Цитата(dimes @  26.6.2007,  19:09 Найти цитируемый пост)
По-моему первый вариант предложенный nitr, "$str =~ s/[\\]+n/\n/g;"

не совсем, где сказано что в конце по любому 'n' ? и потом ему нужно пару '\\' превратить в одну, а не убить их всех одним махом smile

Я так понял требуеться для общего случая, когда и такое может случиться: 'aaa\\\n\\\\bb'...



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
1one
  Дата 27.6.2007, 08:14 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Цитата(Nab @ 26.6.2007,  20:02)
не совсем, где сказано что в конце по любому 'n' ? и потом ему нужно пару '\\' превратить в одну, а не убить их всех одним махом smile

Я так понял требуеться для общего случая, когда и такое может случиться: 'aaa\\\n\\\\bb'...

вот-вот...

эхх..
PM MAIL   Вверх
1one
Дата 27.6.2007, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Цитата(Nab @ 26.6.2007,  17:23)
а зачем?

Проще эту работу поручить перлу...
Код

eval "\$str = \"$str\"";

Это был бы действительно вариант, если бы не интерпретация и других спецсимволов в том числе - 
а то, да, может по ошибке и еще какое-нибудь значение левой переменной залезть в результат.
PM MAIL   Вверх
fantome
Дата 27.6.2007, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2007

Репутация: 1
Всего: 1



1one
Цитата

т.е. то же самое, если бы вы вывели print "one\ntwo\\nthree\\\nfour\\\\nfive";


А если в отладчике ввалиться в функцию print и посмотреть, как она обработает эту строку?
тоисть взять кусок из самой функции...  smile 
PM MAIL   Вверх
1one
Дата 27.6.2007, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Цитата(fantome @ 27.6.2007,  08:48)
1one
Цитата

т.е. то же самое, если бы вы вывели print "one\ntwo\\nthree\\\nfour\\\\nfive";


А если в отладчике ввалиться в функцию print и посмотреть, как она обработает эту строку?
тоисть взять кусок из самой функции...  smile

Разве перловая функция написана на самом перле?
Не думаю, что будет удачным преобразование с низкого уровня на уровень перла.
PM MAIL   Вверх
Nab
Дата 27.6.2007, 09:37 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(1one @  27.6.2007,  08:44 Найти цитируемый пост)
Это был бы действительно вариант, если бы не интерпретация и других спецсимволов в том числе - а то, да, может по ошибке и еще какое-нибудь значение левой переменной залезть в результат.

Ээээ нет, не нужно тут ставить новые задачи... Вы или сформулируйте вопрос однозначно или не морочьте голову, а то от первоначального вопроса мы уже ой как далеко ушли... 

Пример пожалуйста того, что может быть во входной строке, и то что должно в итоге получиться в выходной... 


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
1one
Дата 27.6.2007, 10:07 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Цитата(Nab @ 27.6.2007,  09:37)
Пример пожалуйста того, что может быть во входной строке, и то что должно в итоге получиться в выходной...

да вопрос то все тот же, просто под разными углами формулирую.

примеры:
------------
1)
на входе:
ma\npa
на выходе:
ma
pa
------------
2)
на входе:
ma\\npa
на выходе:
ma\npa
------------
3)
на входе:
ma\\\npa
на выходе:
ma\
pa
------------
4)
на входе:
ma\\\\npa
на выходе:
ma\\npa
------------
PM MAIL   Вверх
nitr
Дата 27.6.2007, 10:21 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Задача решаема не в одну строку, тут и "конечные автоматы" можно и многое другое - регеспы вам не в помощь! Можете сами посмотреть, вывод строки:
Код

print 'one\ntwo\\nthree';

вывод одинаковый, а слешей больше ;)
т.е.
Цитата

one\ntwo\nthree

так что пересмотрите задачу. Лучше, как советовал Nab - получить данные, которые можно обработать.


--------------------
PM   Вверх
1one
Дата 27.6.2007, 10:32 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



На мой взгляд, решение существует именно в одну строку (на крайний случай - пара-тройка).

Всего то и нужно:
идти _последовательно_ по строке (наверняка в регекспе будет фигурировать метасимвол \G) и заменять {\\ на \} и {\n на 0xA}.

Причем операция замены {\\ на \} по приоритету выше, чем {\n на 0xA}. Вот и все. это и надо уместить в регексп(ы).
PM MAIL   Вверх
nitr
Дата 27.6.2007, 11:12 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



1one, вы прочли предыдущее предложение. Perl понимает '\n' так же как и '\\n'
Код

print 'ok' if '\n' eq '\\n';

smile так что... совет - прислушаться к совету.


--------------------
PM   Вверх
Nab
Дата 27.6.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



1one, вы издеваетесь? Я привел решение, Вы начинаете говорить о левых переменных которые могут попасть в строку, и тут же приводите примеры входных строк без таких нюансов...

Вы бы для себя определились что хотите, а потом начали задавать вопросы....

И ответьче ЧЕМ КОНКРЕТНО НЕ УСТРАИВАЕТ МОЙ ВАРИАНТ?

Все ваши примеры он по определению решает на УРА!


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
1one
Дата 27.6.2007, 12:38 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Цитата(Nab @ 27.6.2007,  12:08)
1one, вы издеваетесь? Я привел решение, Вы начинаете говорить о левых переменных которые могут попасть в строку, и тут же приводите примеры входных строк без таких нюансов...

Вы бы для себя определились что хотите, а потом начали задавать вопросы....

И ответьче ЧЕМ КОНКРЕТНО НЕ УСТРАИВАЕТ МОЙ ВАРИАНТ?

Все ваши примеры он по определению решает на УРА!

Nab, ты предложил решение
eval "\$str = \"$str\"";

Оно подходит, да. Если бы не одно НО:
строка $str вводится пользователем, который может (случайно) написать во введенной строке как имена служебных переменных (типа $_ $% $@ $! и пр.), так и имя переменной (например, $str), которая существует в коде, в котором выполняется eval'ом эта самая строка. Соответственно, при выполнении eval туда подставится значение указанной переменной.
Экранирование $ на \$ перед исполнением eval у меня проблемы не решило:

Код

# EVAL variant
my $bug = "ZLOI BUG!";
my $str = 'ma\\\\\npa $%$_$! $bug';
$str =~ s/\$/\\\$/; # попробуем защитить от подстановки значения
eval "\$str = \"$str\"";

print "----------\n";
print STDERR $str;
print "\n----------\n";

PM MAIL   Вверх
JAPH
Дата 27.6.2007, 12:43 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 8.1.2007
Где: Ленобласть

Репутация: 3
Всего: 23



Проверьте 
Код
s/(\\[\\n])/qq{qq{$1}}/gee


Добавлено через 9 минут
nitr
Код

print "ok" if "\n" eq "\\n";


Конечные автоматы.. А регекспы в перле как реализованы? По-моему, как раз НКА smile


--------------------
Что непонятно - спрашиваем smile
PM MAIL ICQ   Вверх
1one
Дата 27.6.2007, 12:57 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Цитата(JAPH @ 27.6.2007,  12:43)
Проверьте 
Код
s/(\\[\\n])/qq{qq{$1}}/gee

JAPH, черт возьми, работает!!! =)
Спасибо.

Теперь вот разберусь че куда в етом регекспе. Почему модификатор e 2 раза и двойные qq...
PM MAIL   Вверх
nitr
Дата 27.6.2007, 13:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



ууууууууууууу

1one, вы сами себе противоречите!!!
Код

#!perl
use strict;
use warnings;

print "------ Original:\n";
print "one\ntwo\\nthree\\\nfour\\\\nfive";

my $str = 'one\ntwo\\nthree\\\nfour\\\\nfive';
$str =~ s/(\\[\\n])/qq{qq{$1}}/gee;

print "\n------ Code:\n";
print $str;

вывод:
Цитата

------ Original:
one
two\nthree\
four\\nfive
------ Code:
one
two
three\nfour\nfive

И все выши попытки - это подгон к результату. Если прочесть тему сначала, будет ясно почему...

Добавлено через 3 минуты и 7 секунд
JAPH, и вы внимательно прочтите...
Код

print "ok" if "\n" eq "\\n";
print "ok" if '\n' eq '\\n';

РАЗНЫЕ ВЕЩИ! Я это специально привел как пример ;)

гляньте на первые 3 поста, там 1one, как бы уточняет суть вопроса и приводит пример, достаточно точный.

Добавлено через 4 минуты и 24 секунды
точнее даже на этом ярче видно:
Код

print "ok1" if "\n" eq "\\n";
print "ok2" if '\n' eq '\\n';



--------------------
PM   Вверх
1one
Дата 27.6.2007, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Цитата(1one @ 26.6.2007,  16:02)
Цитата(Nab @ 26.6.2007,  15:57)
Приведите пример выходной строки.

например,
есть строка 'one\ntwo\\nthree\\\nfour\\\\nfive'

на выходе будет:

one
two\nthree\
four\\nfive

т.е. то же самое, если бы вы вывели print "one\ntwo\\nthree\\\nfour\\\\nfive";

Задачка решена.
Nitr, Nab, вам тоже спасибо за обсуждение.

ps: Nitr, я выразился неточно значит. В цитате "то же самое" надо, видимо, заменить на "почти то же самое". Я не знал, что perl пакостит с ('\n' eq '\\n').

В общем, всем thanks, specially thanks for JAPH.
PM MAIL   Вверх
JAPH
Дата 27.6.2007, 14:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 8.1.2007
Где: Ленобласть

Репутация: 3
Всего: 23



smile гы...
Меня несколько смущает следующее:
Код
my $s = 'asd\\\\nasd\\nasd';
$_ = $s; print "<$_>\n";
$_ = $s; s/(\\[\\n])/$1/g; print "<$_>\n";
print "\n";
$_ = $s; s/(\\[\\n])/qq{$1}/g; print "<$_>\n"; # 1
$_ = $s; s/(\\[\\n])/qq{$1}/ge; print "<$_>\n"; # 3
print "\n";
$_ = $s; s/(\\[\\n])/qq{qq{$1}}/g; print "<$_>\n";
$_ = $s; s/(\\[\\n])/qq{qq{$1}}/ge; print "<$_>\n"; # 2
$_ = $s; s/(\\[\\n])/qq{qq{$1}}/gee; print "<$_>\n"; # 4

Сравните выводы 1 и 2, а затем то, что с ними сделали 3 и 4. smile

Добавлено @ 14:10
nitr, дык я тоже как пример.. А что касается первых трёх постов, так я и не встревал, так как не мог чётко сформулировать задачу... А так, в ходе многочисленных рассуждений прояснилось... smile
1one, perl не пакостит! просто в одинарных кавычках он заменяет только \\ и \', \n он не знает и оставляет как есть. smile

Это сообщение отредактировал(а) JAPH - 27.6.2007, 14:19


--------------------
Что непонятно - спрашиваем smile
PM MAIL ICQ   Вверх
1one
Дата 27.6.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.6.2007

Репутация: 1
Всего: 1



Цитата(JAPH @ 27.6.2007,  14:06)
Сравните выводы 1 и 2, а затем то, что с ними сделали 3 и 4. smile

в общем, работает на основе того, что eval от, например, qq(qq(\\\\)) дает нужный результат. Причем qq начинают интерполироваться из внутренних скобок самые первые..
PM MAIL   Вверх
JAPH
Дата 27.6.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 8.1.2007
Где: Ленобласть

Репутация: 3
Всего: 23



В смысле? Внешние qq - оператор, внутренние - строка...


--------------------
Что непонятно - спрашиваем smile
PM MAIL ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1320 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.