http://qs321.pair.com?node_id=586348


in reply to Re: Why am I getting "premature end of script header"? - eval { use }
in thread Why am I getting "premature end of script header"?

I just tried #2, or my interpretation of #2 and it didn't work... here is the code I used:
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "here we go again..."; if (eval "require LWP::UserAgent; use HTTP::Request::Common; 1 +;") { my $ua = LWP::UserAgent->new; my %post; my $content = $ua->request(POST "http://www.cnn.com", +[%post])->as_string; print $content; } else { print "didnt work"; }
And here is the error I got:
./networktest.pl String found where operator expected at ./networktest.pl line 10, near + "POST "http://www.cnn.com"" (Do you need to predeclare POST?) syntax error at ./networktest.pl line 10, near "POST "http://www.cnn.c +om"" Execution of ./networktest.pl aborted due to compilation errors.

Replies are listed 'Best First'.
Re^3: Why am I getting "premature end of script header"? - eval { use }
by ikegami (Patriarch) on Nov 27, 2006 at 22:42 UTC

    You must use parens around the arguments of a function call when the call is compiled before the function being called has been loaded.

    My solution doesn't suffer from that problem. It loads the function (i.e. the module) before the call to the function is compiled.

    So either add parens around the arguments for POST (and suffer from the loss of prototypes on all imported functions), or use what I already posted.