This sounds like a shell, environment issue. Rather than
running your executable, run a shell and cd to where you need to be. This may have security implications.
Something like
system "(cd /your_bin; handle_cd_error; ./your_cmd; )";. Watch the security issues with system and with shelling-out.
Be well,
rir
Update: My point invalidated by further info from kwaping.