in reply to modules as variables

Completely differently, you could use do to insert the code into the current namespace.

foo.pl:

our $var_a = 1; our $var_b = 2; 1;

bar.pl:

our $var_a = 3; our $var_b = 4; 1;

main.pl:

#!/usr/bin/perl use strict; use warnings; do $ARGV[0].'.pl' or die; our $var_a; our $var_b; print("$var_a, $var_b\n");

Output:

>perl 558119.pl foo 1, 2 >perl 558119.pl bar 3, 4