in reply to Re^2: 500 internal server error when connecting to mysql database
in thread 500 internal server error when connecting to mysql database

"The password does have a % sign, but when I printed it out it seems to be ok. Would that cause a problem?"

This is a situation where I would apply "the first great virtue of a programmer": laziness.

Instead of checking if individual strings might be a problem when interpolated; e.g.

$ perl -Mstrict -Mwarnings -E 'my $v = qq{$s@a%h}; say $v' Possible unintended interpolation of @a in string at -e line 1. Global symbol "$s" requires explicit package name (did you forget to d +eclare "my $s"?) at -e line 1. Global symbol "@a" requires explicit package name (did you forget to d +eclare "my @a"?) at -e line 1. Execution of -e aborted due to compilation errors.

Simply side-step the issue by not interpolating; e.g.

$ perl -Mstrict -Mwarnings -E 'my $v = q{$s@a%h}; say $v' $s@a%h

See also: "perlop: Quote and Quote-like Operators"; which starts with a table showing what does, and does not, interpolate.

— Ken