in reply to Defining global variable in a subroutine

You don't "modifiers" when using strict, and you don't need strict to use "modifiers".

One way of doing what you want is to declare you shared variables as lexical variables in the most inner scope that is shared by your subroutines. In many cases, that's the file:

#!/usr/bin/perl use 5.010; my $global; sub set_global {$global = shift} sub get_global {$global} sub say_global {say $global}
If you want to import variables from a different file, the usual way of doing that is with the help of Exporter:
package Blabla; our @ISA = qw[Exporter]; use Exporter(); our @EXPORT = qw[$global1 $global2 $global3];
Then in any package that wants to use any of the variables, just do:
use Blabla;