Solution with namespace
examples/modules/namespace.pl
#!/usr/bin/perl use strict; use warnings; require "examples/modules/namespace_lib.pl"; print Calc::add(3, 4), "\n";
examples/modules/namespace_lib.pl
package Calc; use strict; use warnings; my $base = 10; sub add { validate_parameters(@_); my $total = 0; $total += $_ for (@_); return $total; } sub multiply { } sub validate_parameters { die 'Not all of them are numbers' if grep {/\D/} @_; return 1; } 1;
Here, within the Calc namespace you don't have to use the full name, only when you are using it outside.