Как вызвать подпрограмму из пакета, зная имя пакета в Perl?

Учитывая переменную, содержащую строку, представляющую имя пакета, как мне вызвать конкретную подпрограмму пакета?

Вот самое близкое, что я выяснил:

package MyPackage;

sub echo {
    print shift;
}

my $package_name = 'MyPackage';
$package_name->echo('Hello World');

1;

Проблема с этим кодом заключается в том, что подпрограмма вызывается как метод класса; имя пакета передается в качестве первого аргумента. Я хочу вызвать подпрограмму из имени пакета без неявной передачи специального первого аргумента.

5
задан Sam 5 June 2012 в 03:56
поделиться