Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Помогите пожалуйста! Срочно! |
Автор: max1mus 4.12.2007, 21:54 |
Почему дання строчка не работает: print m%^(?<=($path))[^/]%; ? Ошибку не выдает, но и не выводит ничего. В переменной $_ находится очередная строчка из файла, например "/abc/cba/123.txt". Переменная $path в начале содержит "/". |
Автор: JAPH 4.12.2007, 22:57 |
А чего вы добиваетесь? ^(?<=...) - В начале строки, перед которым стоит $path... Это как? Совпадение никогда не произойдёт ($path непустая, правда?) |
Автор: max1mus 5.12.2007, 00:28 |
Хм... т.е. мнимый символ ^ работает на конструкцию [^/], а не на (?<=...) ? Жлаь... а как мне можно воплотить это в жизнь? Задача такая, приведу пример: $_="/abc/cba/123.txt" $path="/abc/" что нужно написать, чтобы эта команда вернула мне "cba"? |
Автор: amg 5.12.2007, 07:09 | ||||
Кстати, последние два варианта могут ввести в заблуждение и ими лучше не пользоваться, или все время помнить, что какие функции вынуждает свои аргументы возвращать по возможности списковый контекст (print в их числе, что не очевидно), а какие нет. Например,
|
Автор: max1mus 5.12.2007, 07:30 |
АААгромное спасибо! Работает ![]() ![]() |