use strict; use warnings; package bla; my ($x,$y)=(42,43); require export_var; do { export_var->import my ($x,$y) ; print $x,$y; } for 1..3; print $x,$y; #### use strict; use warnings; use feature 'say'; package export_var; use PadWalker qw[var_name]; use Data::Dump; my %value = ( '$x'=>1, '$y'=>2, ); sub import { my $pkg=shift; for my $var (@_) { $var = $value{ var_name(1,\$var) }; } }