Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     19 Dec 2001  13:29:21
 To : "Alexander A. Kaluzhny"
 Subject : Re: [q] Regexp to func
 -------------------------------------------------------------------------------- 
 
 Здравствуй, Alexander A. Kaluzhny.
 
 >> AAK> Это все работает великолепно, если вызывать следующим образом:
 >>  AAK> my_func('^dummy_value$');
 >>  AAK> Hо я бы хотел немного большего, а именно, например так:
 >>  AAK> my_func(s/^dummy/foo/g);
 >>  AAK> но так, чтобы при вызове не резался $_. Если кто может что-нибудь
 >>  AAK> подсказать, буду весьма благодарен.
 AAK> >
 AAK> > Гм, что-то ты невнятно свои мысли высказываешь. Собственно говоря, тебе
 AAK> что,
 AAK> > s///-выражение передать в функцию надо?
 AAK> Hаверное (тоже не совсем внятно =) ). Хотелось бы уточнить, может есть
 AAK> способ передать s///-выражение и сделать остальное по аналогии?
 AAK> Мне хочется передать все выражение в явном виде без всяких там кавычек, и
 AAK> вызвать его при сопоставлении с моей переменной. Т.е.
 
 AAK> my_func(s/^dummy/foo/g); #Здесь $_ не сопоставляется, т.е. остается как
 AAK> есть
 
 AAK> sub my_func(...)
 AAK> {
 AAK>     $my_var = ....; # тут сопоставляем с моей переменной (не знаю как)
 AAK> }
 AAK> Другими словами мне нужно передать само выражение а не результат
 AAK> сопоставления.
 
 AAK> >
 AAK> > eval
 AAK> >
 AAK> >  Пока.. Ик :)
 
 AAK> Hасколько я понимаю, чтобы пользоваться eval-ом, то нужно все выражение
 AAK> передавать в кавычках, т.е.
 
 AAK> my_func('s/^dummy/foo/g');
 
 AAK> и дальше его использовать.
 
 AAK> Если я ошибаюсь, то можно ли привести мааахонький примерчик?
 
 AAK> Меня больше интересует как это сделано в split(),
 AAK> Т.е. я могу сделать следующее:
 AAK> ($do,$my)=split(/mm/, 'dummmy'); #Тут режется 'dummmy'
 
 Так, кажется, не получится - split все-таки слишком специален. С
 прототипированием можно сделать вещь вроде grep, но только с блоком -
 выражение таки будет вычислено до передачи.
 
 -- 
 Artem Chuprina
 Communiware.net
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757
 
 Отправлено через сервер Talk.Ru - http://www.talk.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.Ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 [q] Regexp to func   Alexander A. Kaluzhny   17 Dec 2001 15:38:23 
 [q] Regexp to func   Ivan Frolcov   17 Dec 2001 17:28:35 
 [q] Regexp to func   Oleg Alexeenkov   17 Dec 2001 20:01:55 
 [q] Regexp to func   Renat Araslanow   18 Dec 2001 02:10:59 
 Re: [q] Regexp to func   Alexander A. Kaluzhny   18 Dec 2001 21:00:21 
 Re: [q] Regexp to func   Artem Chuprina   19 Dec 2001 13:29:21 
 Re: [q] Regexp to func   Alexander A. Kaluzhny   19 Dec 2001 20:03:49 
 Re: [q] Regexp to func   Artem Chuprina   19 Dec 2001 20:24:35 
 Re: [q] Regexp to func   Andrey Sapozhnikov   19 Dec 2001 21:26:25 
 Re: [q] Regexp to func   Ivan Frolcov   20 Dec 2001 01:29:51 
Архивное /ru.perl/63599bcc2949.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional