[Dancer-users] using LWP::Simple with Dancer

Brian E. Lozier brian at massassi.com
Sun May 15 03:47:49 CEST 2011


On Sat, May 14, 2011 at 6:29 PM, Mr. Puneet Kishor <punk.kish at gmail.com> wrote:
> There is perhaps another way, probably very simple, but I am drawing a blank. In my web app, I want to download the content at a few different URIs, strip them off the tags, and store the text for further processing. A simple command line script uses LWP::Simple to download the content, then HTTP::Strip removes the tags. This script works from the command line, But, within Dancer, I get a 'get is redefined' error. How can I implement such functionality within Dancer?

This is because LWP::Simple exports "get" and Dancer defines "get" as
well.  Two different functions with the same name can't be in the same
namespace.  LWP::Simple is a very simple layer around LWP::UserAgent.
I recommend using LWP::UserAgent directly as it doesn't export a
method called "get."

use LWP::UserAgent;

my $ua = LWP::UserAgent->new();

$ua->agent("Some/string");

my $response = $ua->get($url_to_get);

my $content;

if($response->is_success()) {
    $content = $response->decoded_content();
}
else {
    # no dice
}

You could also try not to import LWP::Simple's get function and then
use a fully qualified function call.  I'm not sure this will work if
the module wasn't programmed this way.

use LWP::Simple (); # Import nothing

my $content = LWP::Simple::get($url_to_get);

>
> Puneet.
> _______________________________________________
> Dancer-users mailing list
> Dancer-users at perldancer.org
> http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
>


More information about the Dancer-users mailing list