sub GetVariousPath { # Hacky way to figure out relative location of TaskManager::Various.pm from # running script's context my @variousPaths = map {$INC{$_}} grep {m!TaskManager[\\/]Various\.pm$!} keys %INC; push @variousPaths, __FILE__; s!(.*)[\\/].*!$1! for @variousPaths; -d $_ && return $_ for @variousPaths; die "Unable to determine path to TaskManager::Various module\n"; }