Ok i solved it this way:

--------------------------------------
package Foo;

use strict;
use LWP::UserAgent;
use File::Temp  qw(tempfile);

sub import {
                push @INC, Foo->new();
        }

sub new {
        return bless {},shift;
}

# Keep a track of all files opened.
my @temp_files;

sub Foo::INC {
        my ($self,$filename) = @_;
        my @paths = "http:/me.com";
        my @urls = map{$_ . "/" . [EMAIL PROTECTED];
        my $ua = LWP::UserAgent->new();
        foreach my $url(@urls) {
                my $request    = HTTP::Request->new($url);
                my $response = $ua->request($request);
                if($response->is_success()) {
                        my ($fh,$filename) = tempfile();
                        print $fh $response->content();
                        close($fh);
                        open($fh,$filename)
                                and push @temp_files,$filename
                                        and return $fh;
                }
        }
        return undef;
}

sub DESTROY {
        unlink @temp_files;
}
--------------------------------------

And now my script looks like:

-----------------------------------------
#!/usr/local/bin/perl
use Foo;
use Bar;
---------------------------------------

And it works!! -:).


Please let me know for if u have better ideas.

Thanx,
-Sharad


-----Original Message-----
From: Gupta, Sharad 
Sent: Friday, August 08, 2003 10:50 PM
To: [EMAIL PROTECTED]
Subject: Ok I am tired


Hi All,

I am really tired now:

--------------------------------------
package Foo;

use strict;
use LWP::UserAgent;


sub new {
        return bless {},shift;
}


sub Foo::INC {
        my ($self,$filename) = @_;
        my @paths = "http:/me.com";
        my @urls = map{$_ . "/" . [EMAIL PROTECTED];
        my $ua = LWP::UserAgent->new();
        foreach my $url(@urls) {
                my $request    = HTTP::Request->new($url);
                my $response = $ua->request($request);
                if($response->is_success()) {
                        return $response->content();
                }
        }
        return undef;
}
--------------------------------------


What i am trying to do is hook into the @INC so that i can find the modules via http, 
but a simple test like:

--------------
#!/usr/local/bin/perl

BEGIN { push @INC,Foo->new() }
use Bar;
-------------

Cannot find Bar.pm.


Any ideas??.


-Sharad

Reply via email to