in reply to Variable path

Just a few ideas: FindBin::Bin and Cwd. I believe both come with Perl.

The former can be used to check out where you script resides — theoretically, I've had too many cases where it fails, including in programs "compiled" (or at least processed) using perl2exe/PerlApp.

The latter can be used to determine the current (working) directory, hence the abbreviation. All too often, this is the location where your script is started up from. On Windows, if anybody creates a shortcut to your program, a .lnk file, the working directory to run the program under, is also stored inside the shortcut file. By default, this is the directory to the program.

IMO people are generally willing to accept the program's need to be run in a specific directory, especially if the behaviour of the program depends on this directory. For example, it or a subdirectory may contain datafiles to be used in a specific setup. Just changing the working directory allows people to have multiple setups.