package Mod; sub foo { my ($pkg, %options) = @_; my $dir = $options{arg} || "/default"; die "$dir not found" unless -d $dir; print "$dir found"; } # this is to make foo run when module is require'd { foo(); } sub import { my ($pkg, %options) = @_; __PACKAGE__->foo(arg => $options{-arg}); }