Rajesh Dorairajan wrote:

> I've had this problem for a long time and I am in a sort of a dead-end and
> could use some help. When I make a get request using the LWP UserAgent
> inside a function and I pass a URL to the function as a string I get a
> response. However, when I pass a variable that contains the URL (typically
> a hash value) I get a return code of 501. I'm just not able to figure out
> why. I'm giving the example code of the working code and Non-working code.
> Any help will be deeply appreciated.
> 
> Thanks in advance.
> 
> -----------------------
> #Working code
> 
> #!/usr/bin/perl
> use strict;
> use LWP::UserAgent;
> my $url = "http://rajeshd";;
>                     
> print_page ( $url );
> 
> sub print_page{
> 
>         my($host,$port) = @_;
> 
>         my $url = $host;
> 
>         $url .= ":$port" if($port);
>         
>         my $ua = LWP::UserAgent->new(env_proxy  => 0,
>                                      keep_alive => 0,
>                                      timeout    => 30);
> 
>         my $r = $ua->request(HTTP::Request->new(GET => $url));
> 
>         print $r->content if($r->is_success);
>         print $r->code,': ',$r->status_line unless($r->is_success);
>         print "\n";
> }
> -----------------------
> #Failing code
> 
> #!/usr/bin/perl
> use strict;
> use LWP::UserAgent;
> use XML::Simple;
> 
> my $config = XMLin( "C:/config.xml", VarAttr => 'name',
>                     ContentKey => '-content' );
> 
> my $url = $config->={URL_1}; #$config->{URL_1} equals http://rajeshd at
> run-time
>                     
> print_page ( $url );
> 
> sub print_page{
> 
>         my($host,$port) = @_;
> 
>         my $url = $host;
> 
>         $url .= ":$port" if($port);
>         
>         my $ua = LWP::UserAgent->new(env_proxy  => 0,
>                                      keep_alive => 0,
>                                      timeout    => 30);
> 
>         my $r = $ua->request(HTTP::Request->new(GET => $url));
> 
>         print $r->content if($r->is_success);
>         print $r->code,': ',$r->status_line unless($r->is_success);
>         print "\n";
> }

http 1.1 define 501 as not implemented. your working version and failing 
version is absolutely the same except the source of $url in which the 
working version hard codes it while the failing version gets it from the 
$config hash reference returned the XMLin function. you extract $url from 
$config with:

my $url = $config->={URL_1};

which is a syntax error:

[panda]# perl -e '$c->={hi}'
syntax error at -e line 1, near "->="
Execution of -e aborted due to compilation errors.
[panda]#

david
-- 
sub'_{print"@_ ";* \ = * __ ,\ & \}
sub'__{print"@_ ";* \ = * ___ ,\ & \}
sub'___{print"@_ ";* \ = * ____ ,\ & \}
sub'____{print"@_,\n"}&{_+Just}(another)->(Perl)->(Hacker)

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to