BEGIN { my $rel2abs = rel2abs $0; my $realpath = eval { realpath $rel2abs }; unless ( defined $realpath ) { warn "$rel2abs"; $rel2abs .= '.exe'; $realpath = realpath $rel2abs; } my $myname = $0 = $realpath; #my $myname = $0 = realpath rel2abs $0; my $mybase = basename $0, qw(.t .pm .pl .perl .exe); my $mydir = dirname $0; die 'chdir() used too early' unless -f $0; sub myname { $myname } sub mybase { $mybase } sub mydir { $mydir } }