| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Как получить путь на один уровень выше скрипта? |
| Автор: Suppir 14.4.2011, 14:15 |
| Скрипт лежит в директории C:\Компаратор\Питер\script.pl Нужно получить путь к папке C:\Компаратор\dumped Эта папка находится на один уровень "выше" скрипта. Пишу: ($waytodump = $0) =~ s/(.+?)[^\\]+\\[^\\]+\.pl/$1\dumped/; Переменной присваивается верное значение, но выдается предупреждение "Unrecognized escape \d passed through" Как избежать этого предупреждения? (дополнительные модули кроме стандартных не использую). |
| Автор: arto 14.4.2011, 14:48 |
| это у вас за \d в правой части? |
| Автор: Suppir 14.4.2011, 15:00 |
| arto, имеем строку ($0): C:\Компаратор\Питер\script.pl из нее нужно сделать C:\Компаратор\dumped Регулярным выражением получаю "C:\Компаратор" и прикрепляю к нему "\dumped". А Perl думает, что \d - это метасимвол. Если заэкранировать: ($waytodump = $0) =~ s/(.+?)[^\\]+\\[^\\]+\.pl/$1\\dumped/; то выдает C:\Компаратор\\dumped (что неправильно) |
| Автор: Pfailed 14.4.2011, 15:37 |
| Уберите обрытный слеш в правой части оператора замены, он там не нужен. |