Skip to content

Instantly share code, notes, and snippets.

@oalders
Created July 23, 2018 16:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oalders/d4ead6895cb282dca38f7623808c44ec to your computer and use it in GitHub Desktop.
Save oalders/d4ead6895cb282dca38f7623808c44ec to your computer and use it in GitHub Desktop.
lazy + HTTP::Tinyish
$ 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