(main.pl) use strict; use warnings; use mySubs; my @array; while (my $temp=){ my $number=&mySub(\$temp); @array=(@array,$number); } --------------------------- (mySubs.pm) use strict; use warnings; package mySubs; #...Exporter.. etc.. sub mySub { my $variable = ${$_[0]}; .... #some stuff .... if (some condition){ print "data $variable not valid in mySub\n"; return -1; } .... #rest of sub .... }