|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander A. Kaluzhny 2:5020/400 18 Dec 2001 21:00:21 To : Alexander A. Kaluzhny Subject : Re: [q] Regexp to func -------------------------------------------------------------------------------- > AAK> Это все работает великолепно, если вызывать следующим образом: > AAK> my_func('^dummy_value$'); > AAK> Hо я бы хотел немного большего, а именно, например так: > AAK> my_func(s/^dummy/foo/g); > AAK> но так, чтобы при вызове не резался $_. Если кто может что-нибудь > AAK> подсказать, буду весьма благодарен. > > Гм, что-то ты невнятно свои мысли высказываешь. Собственно говоря, тебе что, > s///-выражение передать в функцию надо? Hаверное (тоже не совсем внятно =) ). Хотелось бы уточнить, может есть способ передать s///-выражение и сделать остальное по аналогии? Мне хочется передать все выражение в явном виде без всяких там кавычек, и вызвать его при сопоставлении с моей переменной. Т.е. my_func(s/^dummy/foo/g); #Здесь $_ не сопоставляется, т.е. остается как есть sub my_func(...) { $my_var = ....; # тут сопоставляем с моей переменной (не знаю как) } Другими словами мне нужно передать само выражение а не результат сопоставления. > > eval > > Пока.. Ик :) Hасколько я понимаю, чтобы пользоваться eval-ом, то нужно все выражение передавать в кавычках, т.е. my_func('s/^dummy/foo/g'); и дальше его использовать. Если я ошибаюсь, то можно ли привести мааахонький примерчик? Меня больше интересует как это сделано в split(), Т.е. я могу сделать следующее: ($do,$my)=split(/mm/, 'dummmy'); #Тут режется 'dummmy' Спасибо за внимание. -- Sincerely, Alexander Kaluzhny. --- ifmail v.2.15dev5 * Origin: NTUU "KPI" (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/129330c66aa5d.html, оценка из 5, голосов 10
|