Автор Тема: s-выражение и символ \'(\'  (Прочитано 2098 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
s-выражение и символ \'(\'
« : 10 Мая 2002, 15:49:26 »
Привет всем!
Есть переменная $str, значение которой вводит пользователь.
Затем я организовываю просмотр строк файла:

while()
{  if (/^$str;/) # если строка начинается с $str, а потом \';\'
    { ...
    }
}


И вот если $str содержит \'(\' (а также \'[\', \'{\' и другие), то скрипрт выдаёт ошибку. Как добиться того, чтобы Перл интерполировал значение переменной просто как набор символов, не принимая во внимание то, что это за символы.
Спасибо.

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
s-выражение и символ \'(\'
« Ответ #1 : 10 Мая 2002, 16:02:14 »
Ну не знаю, я бы своими кривыми руками сделал тупо и просто - проверял на спец символы, и если да, ставил перед каждым из них /, для отмены их действия. Вот.
Ну к чему все это, лучше бы водки выпили...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
s-выражение и символ \'(\'
« Ответ #2 : 10 Мая 2002, 18:54:38 »
Цитировать
проверял на спец символы, и если да, ставил перед каждым из них /

ну это, допустим, просто...
$str=~ s/(\\(|\\[|\\{)/\\/$1/g;
только что он дальше с "/(" в тексте будет делать?

to Evgeny а они тебе (в смысле эти спец символы) оч. нужны? Может их проще выкинуть?
The documentations is your friend

  • Гость
s-выражение и символ \'(\'
« Ответ #3 : 10 Мая 2002, 19:33:22 »
while( )
{  if (/^\\Q$str\\E;/) # если строка начинается с $str, а потом \';\'
    { ...
    }
}

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28