my %Actions = ( login => { libs => [ "Sources/Env.pm", "Sources/Global.pm", "Sources/Authenticate.pm", ], subs => [ \&Sources::Env::global_set, \&Sources::Global::write_standardhttp_header, \&Sources::Authenticate::write_loginmask, ], }, ); ... foreach my $lib (@{$Actions{$action}->{libs}}) { # eval "require $lib"; require $lib; ]