in reply to Variable Package Names?
... this way, you move the eval() outside the loop, which I understand improves performance significantly.#!/usr/bin/perl -w use strict; BEGIN { my @packages = qw(test test2); my @vars = qw(first second); populate(); sub populate { my $text = ''; foreach my $package (@packages) { foreach my $var (@vars) { $text .= '$' . $package . '::' . $var . ' = 1;' . "\n" +; } } print $text; eval $text; } } print "test:\t$test::first\t$test::second\n"; print "test2:\t$test2::first\t$test2::second\n";
|
|---|