If perlcritic says "having no returns in a sub is wrong", what is the alternative if they really aren't needed? I've developed two apparently bad habits: I explicitly assign variables to the '$main::' namespace. I then play with those variables in subs. For example, I might do.. #!/usr/bin/perl use strict; use warnings; @main::array = (1,4,2,6,1,8,5,5,2); &sort_array; &push_array; &pop_array; sub sort_array{ @main::array = sort @main::array; for (@main::array){ print "$_\n"; } } sub push_array{ for ( 1 .. 9 ){ push @main::array, $_; } } sub pop_array { for ( 1 .. 3 ){ pop @main::array; } } I