I just used libcall() to illustrate what's going on within the library. The real library is of course different and doesn't accept the value on its parameter list, but insists on getting it in %ENV.
"What is this library, who in their right mind would support an interface like that!", you ask now! and I'll let you in that the library is Crypt::SSLeay and the variable is HTTPS_CA_FILE.