Created
July 23, 2018 16:46
-
-
Save oalders/d4ead6895cb282dca38f7623808c44ec to your computer and use it in GitHub Desktop.
lazy + HTTP::Tinyish
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ git diff lib | |
diff --git a/lib/lazy.pm b/lib/lazy.pm | |
index 1d9169d..c5c90fe 100644 | |
--- a/lib/lazy.pm | |
+++ b/lib/lazy.pm | |
@@ -84,9 +84,15 @@ sub import { | |
# Don't try to install if we're called inside an eval | |
my @caller = caller(1); | |
- return | |
- if ( ( $caller[3] && $caller[3] =~ m{eval} ) | |
- || ( $caller[1] && $caller[1] =~ m{eval} ) ); | |
+ return if $^S; | |
+ | |
+ use Data::Printer; | |
+ p $^S; | |
+ for my $level (0..10) { | |
+ my @call = caller($level); | |
+ last unless @call; | |
+ p @call; | |
+ } | |
my $name = shift; | |
$name =~ s{/}{::}g; | |
$ cat lazy.pl | |
use Modern::Perl; | |
use lib '../lazy/lib'; | |
use lazy; | |
use HTTP::Tinyish; | |
my $tiny = HTTP::Tinyish->new; | |
$tiny->get('https://metacpan.org'); | |
$ cpanm -U LWP && perl lazy.pl | |
LWP contains the following files: | |
/Users/olaf/.plenv/versions/5.26.1/bin/lwp-download | |
/Users/olaf/.plenv/versions/5.26.1/bin/lwp-dump | |
/Users/olaf/.plenv/versions/5.26.1/bin/lwp-mirror | |
/Users/olaf/.plenv/versions/5.26.1/bin/lwp-request | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Authen/Basic.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Authen/Digest.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Authen/Ntlm.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/ConnCache.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Debug.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Debug/TraceHTTP.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/DebugFile.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/MemberMixin.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/cpan.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/data.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/file.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/ftp.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/gopher.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/http.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/loopback.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/mailto.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/nntp.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/nogo.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/RobotUA.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Simple.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/UserAgent.pm | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/libwww/lwpcook.pod | |
/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/libwww/lwptut.pod | |
Are you sure you want to uninstall LWP? [y] y | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/bin/lwp-download | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/bin/lwp-dump | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/bin/lwp-mirror | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/bin/lwp-request | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Authen/Basic.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Authen/Digest.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Authen/Ntlm.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/ConnCache.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Debug.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Debug/TraceHTTP.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/DebugFile.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/MemberMixin.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/cpan.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/data.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/file.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/ftp.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/gopher.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/http.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/loopback.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/mailto.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/nntp.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Protocol/nogo.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/RobotUA.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/Simple.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/LWP/UserAgent.pm | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/libwww/lwpcook.pod | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/libwww/lwptut.pod | |
Unlink: /Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/darwin-2level/auto/libwww/perl/.packlist | |
Successfully uninstalled LWP | |
undef | |
[ | |
[0] 'HTTP::Tinyish::LWP', | |
[1] '/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/HTTP/Tinyish/LWP.pm', | |
[2] 5, | |
[3] 'lazy::__ANON__', | |
[4] 1, | |
[5] 1, | |
[6] undef, | |
[7] undef, | |
[8] 2018, | |
[9] undef, | |
[10] undef, | |
] | |
[ | |
[0] 'main', | |
[1] '/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/HTTP/Tinyish/LWP.pm', | |
[2] 5, | |
[3] 'HTTP::Tinyish::LWP::BEGIN', | |
[4] 1, | |
[5] undef, | |
[6] undef, | |
[7] undef, | |
[8] 2018, | |
[9] undef, | |
[10] undef, | |
] | |
[ | |
[0] 'main', | |
[1] '/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/HTTP/Tinyish/LWP.pm', | |
[2] 5, | |
[3] '(eval)', | |
[4] 0, | |
[5] undef, | |
[6] undef, | |
[7] undef, | |
[8] 2018, | |
[9] undef, | |
[10] undef, | |
] | |
[ | |
[0] 'HTTP::Tinyish', | |
[1] '/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/HTTP/Tinyish.pm', | |
[2] 64, | |
[3] '(eval)', | |
[4] 0, | |
[5] '', | |
[6] 'HTTP/Tinyish/LWP.pm', | |
[7] 1, | |
[8] 2018, | |
[9] 'UUUUUUUUUUUUUUUUUU', | |
[10] undef, | |
] | |
[ | |
[0] 'HTTP::Tinyish', | |
[1] '/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/HTTP/Tinyish.pm', | |
[2] 56, | |
[3] 'HTTP::Tinyish::require_module', | |
[4] 1, | |
[5] undef, | |
[6] undef, | |
[7] undef, | |
[8] 1762, | |
[9] 'UUUUUUUUUUUUUUUUUU', | |
[10] undef, | |
] | |
[ | |
[0] 'HTTP::Tinyish', | |
[1] '/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/HTTP/Tinyish.pm', | |
[2] 56, | |
[3] '(eval)', | |
[4] 0, | |
[5] '', | |
[6] undef, | |
[7] undef, | |
[8] 2018, | |
[9] 'UUUUUUUUUUUUUUUUUU', | |
[10] undef, | |
] | |
[ | |
[0] 'HTTP::Tinyish', | |
[1] '/Users/olaf/.plenv/versions/5.26.1/lib/perl5/site_perl/5.26.1/HTTP/Tinyish.pm', | |
[2] 39, | |
[3] 'HTTP::Tinyish::configure_backend', | |
[4] 1, | |
[5] '', | |
[6] undef, | |
[7] undef, | |
[8] 2018, | |
[9] 'UUUUUUUUUUUUUUUUUU', | |
[10] undef, | |
] | |
[ | |
[0] 'HTTP::Tinyish', | |
[1] '(eval 11)', | |
[2] 3, | |
[3] 'HTTP::Tinyish::_backend_for', | |
[4] 1, | |
[5] '', | |
[6] undef, | |
[7] undef, | |
[8] 1760, | |
[9] 'UUUUUUUUUUUUUUUUUU', | |
[10] undef, | |
] | |
[ | |
[0] 'main', | |
[1] 'lazy.pl', | |
[2] 9, | |
[3] 'HTTP::Tinyish::get', | |
[4] 1, | |
[5] undef, | |
[6] undef, | |
[7] undef, | |
[8] 469897186, | |
[9] 'UUUUUUUUUUUUUUUUUU', | |
[10] { | |
feature_arybase => 1, | |
feature_say => 1, | |
feature_state => 1, | |
feature_switch => 1, | |
feature_unicode => 1, | |
}, | |
] | |
DONE install libwww-perl-6.35 (using prebuilt) | |
1 distribution installed. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment