Possible Duplicate:
How do I find a user's home directory in Perl?
I'm running Ubuntu.
Whenever I pass a Perl script a path that starts with ~
(e.g. ~/Documents/file.txt
) it fails finding it. I must pass the canonical path (e.g. /home/dave/Documents/file.txt
).
Why is that?
Can I make Perl recognize ~
paths?
UPDATE
All the suggested solutions include changing the code in the scripts. I would like for a solution that would not involve any changes to the scripts themselves (since not all of them are mine). Perhaps something in the way Bash works?
The updated version of the question was posted at Super User.
$path = $ENV{'PATH'}; As you may remember, %ENV is a special hash in Perl that contains the value of all your environment variables. Because %ENV is a hash, you can set environment variables just as you'd set the value of any Perl hash variable.
The dirname() method in Perl is used to get the directory of the folder name of a file.
You can pass the path to glob
to get it expanded.
For a reliable (and easy) cross-platform method, try File::HomeDir:
use File::HomeDir;
print File::HomeDir->my_home;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With