package File::ScriptName; use strict; use warnings; use version; our $VERSION = qv('0.1'); our $AUTHORITY = 'MASSA'; use Exporter q(import); our @EXPORT_OK = qw(myname mybase mydir); use Carp; use Cwd qw(realpath); use File::Spec::Functions qw(rel2abs); use File::Basename qw(basename dirname); BEGIN { my $myname = $0 = realpath rel2abs $0; my $mybase = basename $0, qw(.t .pm .pl .perl); my $mydir = dirname $0; croak 'chdir() used too early' unless -f $0; sub myname { $myname } sub mybase { $mybase } sub mydir { $mydir } } 1