I am trying to port some perl code over from my OS X 10.6.8 server to my new OS X 10.12.6 server. When I run the code, it trips over a missing WWW::Curl::Easy module:
------------------------------
[ns3:~/linkrabbit] administrator% ./linkrabbit.pl -s iq Can't locate WWW/Curl/Easy.pm in @INC (you may need to install the WWW +::Curl::Easy module) (@INC contains: /Users/administrator/perl5/perlb +rew/build/perl-5.24.0/ /Library/Perl/5.18/darwin-thread-multi-2level +/Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2le +vel /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2/darwin-th +read-multi-2level /Library/Perl/Updates/5.18.2 /System/Library/Perl/5 +.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Libr +ary/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/ +Extras/5.18 . /usr/local/Cellar/curl/7.56.1/) at ./linkrabbit.pl line + 35. BEGIN failed--compilation aborted at ./linkrabbit.pl line 35. [ns3:~/linkrabbit] administrator%

------------------------------
Sure enough, WWW::Curl::Easy is not installed. So I pop over to cpanp to install the module, but fail miserably:
------------------------------
[ns3:~/linkrabbit] administrator% sudo cpanp -i WWW::Curl::Easy Password: Installing WWW::Curl::Easy (4.17) CPANPLUS::Dist::Build::Constants will be removed from the Perl core di +stribution in the next major release. Please install it from CPAN. It + is being used at /System/Library/Perl/5.18/CPANPLUS/Dist/Build.pm, l +ine 16. Running [/usr/bin/perl -e use strict; BEGIN { my $old = select STDERR; + $|++; select $old; $|++; $0 = shift(@ARGV); my $rv = do($0); die $@ +if $@; } /Users/administrator/.cpanplus/5.18.2/build/WWW-Curl-4.17/Ma +kefile.PL]... Locating required external dependency bin:curl-config... found at /usr +/bin/curl-config. The version is libcurl 7.54.0 Found curl.h in /usr/include/curl/curl.h In file included from /usr/include/curl/curl.h:38: In file included from /usr/include/curl/curlbuild.h:145: In file included from /Applications/Xcode.app/Contents/Developer/Toolc +hains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include/inttypes.h +:30: In file included from /usr/include/inttypes.h:224: In file included from /usr/include/Availability.h:190: /usr/include/AvailabilityInternal.h:22938:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_12 ^ /usr/include/AvailabilityInternal.h:22867:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11_4 ^ /usr/include/AvailabilityInternal.h:22800:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11_3 ^ /usr/include/AvailabilityInternal.h:22737:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11_2 ^ /usr/include/AvailabilityInternal.h:22678:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11 ^ /usr/include/AvailabilityInternal.h:22623:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10_3 ^ /usr/include/AvailabilityInternal.h:22572:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10_2 ^ /usr/include/AvailabilityInternal.h:22525:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10 ^ /usr/include/AvailabilityInternal.h:22482:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_9 ^ /usr/include/AvailabilityInternal.h:22443:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_8 ^ /usr/include/AvailabilityInternal.h:22408:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_7 ^ /usr/include/AvailabilityInternal.h:22377:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_6 ^ /usr/include/AvailabilityInternal.h:22350:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_5 ^ /usr/include/AvailabilityInternal.h:22327:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_4 ^ /usr/include/AvailabilityInternal.h:22308:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_3 ^ /usr/include/AvailabilityInternal.h:22293:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_2 ^ /usr/include/AvailabilityInternal.h:22282:10: error: unterminated cond +itional directive #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_1 ^ /usr/include/AvailabilityInternal.h:30:2: error: unterminated conditio +nal directive #ifndef __AVAILABILITY_INTERNAL__ ^ In file included from /usr/include/curl/curl.h:38: In file included from /usr/include/curl/curlbuild.h:145: In file included from /Applications/Xcode.app/Contents/Developer/Toolc +hains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include/inttypes.h +:30: In file included from /usr/include/inttypes.h:224: /usr/include/Availability.h:239:2: error: #else without #if #else ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. Building curlopt-constants.c for your libcurl version Building Easy.pm constants for your libcurl version Building Share.pm constants for your libcurl version Generating a Unix-style Makefile Writing Makefile for WWW::Curl Writing MYMETA.yml and MYMETA.json [ERROR] MAKE failed: Inappropriate ioctl for device Skip blib/lib/WWW/ +Curl/Easy.pm (unchanged) Skip blib/lib/WWW/Curl/Multi.pm (unchanged) Skip blib/lib/WWW/Curl/Form.pm (unchanged) Skip blib/lib/WWW/Curl.pm (unchanged) Skip blib/lib/WWW/Curl/Share.pm (unchanged) Running Mkbootstrap for Curl () chmod 644 "Curl.bs" "/usr/bin/perl" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- Cu +rl.bs blib/arch/auto/WWW/Curl/Curl.bs 644 cc -c -I/usr/include -arch x86_64 -arch i386 -g -pipe -fno-common -DP +ERL_DARWIN -fno-strict-aliasing -fstack-protector -Os -DVERSION=\"4 +.17\" -DXS_VERSION=\"4.17\" "-I/System/Library/Perl/5.18/darwin-thre +ad-multi-2level/CORE" Curl.c In file included from Curl.xs:574: ./curlopt-constants.c:19:58: error: non-void function 'constant' shoul +d return a value [-Wreturn-type] if (strEQ(name, "DID_MEMORY_FUNC_TYPEDEFS")) return CURL_D +ID_MEMORY_FUNC_TYPEDEFS; ^ ./curlopt-constants.c:128:49: error: use of undeclared identifier 'CUR +L_STRICTER' if (strEQ(name, "STRICTER")) return CURL_STRICTER; ^ ./curlopt-constants.c:2051:44: warning: implicit conversion from 'unsi +gned long' to 'int' changes value from 18446744073709551599 to -17 [- +Wconstant-conversion] if (strEQ(name, "ANY")) return CURLAUTH_ANY; ~~~~~~ ^~~~~~~~~~~~ /usr/include/curl/curl.h:679:32: note: expanded from macro 'CURLAUTH_A +NY' #define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) ^~~~~~~~~~~~~~~~~~~ In file included from Curl.xs:574: ./curlopt-constants.c:2052:48: warning: implicit conversion from 'unsi +gned long' to 'int' changes value from 18446744073709551598 to -18 [- +Wconstant-conversion] if (strEQ(name, "ANYSAFE")) return CURLAUTH_ANYSAFE; ~~~~~~ ^~~~~~~~~~~~~~~~ /usr/include/curl/curl.h:680:32: note: expanded from macro 'CURLAUTH_A +NYSAFE' #define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings and 2 errors generated. make: *** [Curl.o] Error 1 [ERROR] Unable to create a new distribution object for 'WWW::Curl::Eas +y' -- cannot continue *** Install log written to: /Users/administrator/.cpanplus/install-logs/WWW-Curl-Easy-4.17-15180 +47969.log Error installing 'WWW::Curl::Easy' Problem installing one or more modules [ns3:~/linkrabbit] administrator%

------------------------------
My linkrabbit.pl file begins with this (line 35 is use WWW::Curl::Easy;):
#! /usr/bin/perl # ############################################## use strict; use lib "/Users/administrator/perl5/perlbrew/build/perl-5.24.0/"; BEGIN {push @INC, '/usr/local/Cellar/curl/7.56.1/'} use Time::Local; use Time::HiRes; use Getopt::Long; use IO::Handle; use HTML::TokeParser; use XML::LibXML; use WWW::RobotRules; use LWP::Simple qw(get); use URI; use Switch; use WWW::Curl::Easy; use WWW::Curl::Multi; use WWW::Google::PageRank; use File::Copy;

------------------------------
I have googled my brains out (and I google for a living), but haven't been able to get past this point for months. At this point, I'm quite lost. I'm hoping that I can reach out to someone who might better understand my predicament.

Can anyone assist?

My humble thanks.
Cameron Knowlton

In reply to installing WWW::Curl::Easy perl module in OS X 10.12.6 by igods

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.