Forum Webscript.Ru

Программирование => Регулярные выражения => Тема начата: Error202 от 15 Мая 2008, 16:17:31

Название: Переменные из скрипта perl
Отправлено: Error202 от 15 Мая 2008, 16:17:31
Надо вытащить все переменные, имена которых больше 1-о символа из Perl скрипта
Задаются они там $name
$name[], $name{} - не нужны

Пишу шаблон:

\\$([a-zA-Z0-9_]{2,})
 

Вытаскиваются все $name, $name[, $name{
Как мне исключить обработку $name[], $name{}?
Название: Переменные из скрипта perl
Отправлено: ravshaniy от 15 Мая 2008, 19:16:13

my $str = \'$name asdfas $name1[1 ] $name2{ $name3 }\';
@foo = $str =~ m/(\\$[a-zA-Z0-9_]{2,}(:?\\s+)?[\\[|\\{]?)/g;
@foo = grep(!/\\$[a-zA-Z0-9_]{2,}(:?\\s+)?[\\[|\\{]/, @foo);
print $_,"\\n" for(@foo);


только вот в скобках внутни фигня получаеся;
может все таки есть какая нибудь переменная среды, откуда можно получить доступ ко всем переменным объявленным в нэймспейсе