# this is bad... # sub do_something { if ( $MyApp::VERSION < 1.0 ) { # a global do_something_simple(); } else { do_something_complex(); } } do_something(); # this is good... # sub do_something { my ($version) = @_; if ( $version < 1.0 ) { # a local variable do_something_simple(); } else { do_something_complex(); } } do_something(1.2);