I liked to put user names, passwords and email addresses in my script(s) like this:
my ($user, $pass, $mail) = qw(root $ecret someone@somewhe.re);
This works with sigils, but there are problems with e.g. Unicode characters, therefore I now prefer
use Config::Tiny;
my $ini = Config::Tiny->read( 'whoamI.ini', 'encoding(Windows-1252)' )
+;
my ($user, $pass, $mail) = ($ini->{Main}{user},$ini->{Main}{pass},$ini
+->{Main}{mail});
and have the data in a config file like
[Main]
user=root
pass=$ecret
mail=someone@somewhe.re
This has the additional advantage, that you can share your script (or brag with it :-)) without compromising confidential data, and can avoid problems with foreign or other unusual characters (of course, you have to adapt the
encoding(Windows-1252) part). Plus you don't need to change the script when the password changes.