in reply to why this couldn't work?

Writing scripts that need to run on over 30000 different systems I ran into the same issue many times: the constants are not available when using 'require' or 'eval' to load WWW::Curl::Easy.

This morning I checked the sources. As the documentation states, WWW::Curl::Easy is just a thin layer around libcurl, so everything is autoloaded from the XS library:

$curl->setopt($curl->CURLOPT_HEADER,0); $curl->setopt($curl->CURLOPT_TIMEOUT, 30); $curl->setopt($curl->CURLOPT_FOLLOWLOCATION, 1); $curl->setopt($curl->CURLOPT_URL, 'http://example.com');

Wish I had checked this years ago ... never too old to learn :-)