![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Suppir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
Скрипт лежит в директории C:\Компаратор\Питер\script.pl
Нужно получить путь к папке C:\Компаратор\dumped Эта папка находится на один уровень "выше" скрипта. Пишу: ($waytodump = $0) =~ s/(.+?)[^\\]+\\[^\\]+\.pl/$1\dumped/; Переменной присваивается верное значение, но выдается предупреждение "Unrecognized escape \d passed through" Как избежать этого предупреждения? (дополнительные модули кроме стандартных не использую). Это сообщение отредактировал(а) Suppir - 14.4.2011, 14:19 |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
это у вас за \d в правой части?
|
|||
|
||||
Suppir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 20.4.2009 Репутация: нет Всего: нет |
arto,
имеем строку ($0): C:\Компаратор\Питер\script.pl из нее нужно сделать C:\Компаратор\dumped Регулярным выражением получаю "C:\Компаратор" и прикрепляю к нему "\dumped". А Perl думает, что \d - это метасимвол. Если заэкранировать: ($waytodump = $0) =~ s/(.+?)[^\\]+\\[^\\]+\.pl/$1\\dumped/; то выдает C:\Компаратор\\dumped (что неправильно) |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Уберите обрытный слеш в правой части оператора замены, он там не нужен.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |