Если это внешняя команда, вы можете использовать один из system
, backticks или Perl-модуль для такого рода вещей.
Если вы хотите скомпилировать и выполнить код Perl во время выполнения, вы можете использовать eval
. Во многих случаях люди злоупотребляют eval
, потому что не видят более простого способа добиться цели.
Если вы хотите решить, какую подпрограмму запускать в зависимости от ситуации, вы можете делать разные вещи, включая использование мягких ссылок (ick !, но иногда полезно), таблиц отправки и т.
Если вы хотите выбрать метод, основанный на значении переменной, это тоже просто:
$object->$method(...)
Однако вы должны сообщить нам, чего пытаетесь достичь.
Я все еще не уверен, что вы спрашиваете, но на самом деле это не похоже на что-то динамичное. Я думаю, что это ситуация, которую вы описываете. Скажите, как близко это:
my @array = ( [ 'r0', 'foo', 'bar' ] );
foreach my $element ( @array ) {
my( $identifier, @other_stuff ) = @$element;
$element->test( $identifier );
}
Было бы действительно полезно, если бы вы могли показать некоторые примеры элементов и более полный, хотя бы псевдокод, набросок того, что у вас есть. Мы знаем только то, что вы нам сообщаете в своем вопросе, но не все, что вы знаете о своей проблеме.