Страница 1 из 1

Запустить нужный макрос, имея только его номер?

Добавлено: Пт май 29, 2009 7:43 pm
z-0091
$ch = @config (macrErors)
call foo$ch

например $ch=5
нужно что бы запустился макрос foo5. @eval вроде бы работает тока с математ. действиями. Как еше можно сделть? может @arg?

Re: Запустить нужный макрос, имея только его номер?

Добавлено: Пт май 29, 2009 8:33 pm
EternalHarvest
Макроплагин не делает подстановок в команде call...

Macro::Script::next, старое:

Код: Выделить всё

	# call command
	} elsif ($line =~ /^call\s+/) {
		my ($tmp) = $line =~ /^call\s+(.*)/;
		if ($tmp =~ /\s/) {
			my ($name, $times) = $tmp =~ /(.*?)\s+(.*)/;
			my $ptimes = parseCmd($times);
			if (defined $ptimes) {
				$self->{subcall} = new Macro::Script($name, $ptimes)
			}
		} else {
			$self->{subcall} = new Macro::Script($tmp)
		}
новое:

Код: Выделить всё

	# call command
	} elsif ($line =~ /^call\s+/) {
		$self->{subcall} = new Macro::Script (parseCmd ($line) =~ /^call\s+(\S+)(?:\s+(.+))?/);

Код: Выделить всё

macro test {
	$myVar = 2
	call test$myVar 2
	$myVar = 3
	call test$myVar
}

macro test2 {
	log test2
}

macro test3 {
	log test3
}

Re: Запустить нужный макрос, имея только его номер?

Добавлено: Сб май 30, 2009 8:57 am
4epT
насколько я понимаю в подстановке могут быть не только цифры?

Re: Запустить нужный макрос, имея только его номер?

Добавлено: Сб май 30, 2009 9:29 am
z-0091
call test$myVar 2 к чему тут двойка?
Спасибо за подсказку.
зы. Думаю стоит включить это в новую сборку

Re: Запустить нужный макрос, имея только его номер?

Добавлено: Сб май 30, 2009 11:52 am
EternalHarvest
z-0091 писал(а):call test$myVar 2 к чему тут двойка?
Для тестов...