view release on metacpan or search on metacpan
- Unfortunately search.cpan.org has totally broken Unicode in package names, so
reluctantly renaming distro from Acme::ÇmÉA to the really awful Acme::3mxA.
1337.1
- Before perl 5.8.9 you helpfully get a "Unknown error" when compiling, require 5.8.9.
- Add configure_requires for PadWalker too.
1337
- Initial version
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/Lexical/Thief.pm view on Meta::CPAN
$Acme::Lexical::Thief::VERSION = '0.002';
}
use Carp;
use Keyword::Simple ();
use PadWalker ();
use Text::Balanced ();
my $KEYWORD = 'steal';
my $CLASS = __PACKAGE__;
lib/Acme/Lexical/Thief.pm view on Meta::CPAN
my $depth = shift // 0;
$vars =~ s/(^\s*|\s*$)//g;
my @vars = split /\s*,\s*/, $vars;
my $MY = PadWalker::peek_my($depth + 2);
my $OUR = PadWalker::peek_our($depth + 2);
return map {
exists $MY->{$_} ? $MY->{$_} :
exists $OUR->{$_} ? $OUR->{$_} :
croak "$KEYWORD($_) failed; caller has no $_ defined";
} @vars;
lib/Acme/Lexical/Thief.pm view on Meta::CPAN
Please report any bugs to
L<http://rt.cpan.org/Dist/Display.html?Queue=Acme-Lexical-Thief>.
=head1 SEE ALSO
L<PadWalker> - a slightly more sane alternative to peeking at your caller's
lexicals.
L<Data::Alias> - a slightly more sane way of creating lexical aliases.
This package was initially published on PerlMonks as C<Acme::Asplode>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/Locals.pm view on Meta::CPAN
use warnings;
use version; our $VERSION = qv('0.1.1');
use 5.00600;
use Carp qw(carp croak);
use PadWalker ();
use Params::Util qw(_SCALAR _ARRAY);
BEGIN {
use English qw(-no_match_vars);
my $find_best_say = sub {
lib/Acme/Locals.pm view on Meta::CPAN
my $mode = $mode_for_class{$call_class} || $DEFAULT_MODE;
my $re = $MODES{ $mode };
if ($mode eq '-ruby' && !scalar keys %bind_vars) {
%bind_vars = %{ PadWalker::peek_my($peek_level) };
}
$fmt =~ s/$re/$map_bind_var->($1, $2)/xmseg;
return sprintf $fmt, @binds;
lib/Acme/Locals.pm view on Meta::CPAN
sub lexicals {
goto &locals;
}
sub locals {
return wantarray ? %{ PadWalker::peek_my(1) }
: PadWalker::peek_my(1);
}
sub globals {
return wantarray ? %{ PadWalker::peek_our(1) }
: PadWalker::peek_our(1);
}
1;
__END__
lib/Acme/Locals.pm view on Meta::CPAN
sprintf like python/ruby.
=== {locals()}
Return a hash of all lexical variables in the current scope. (Using
PadWalker).
=== {globals()}
Return a hash of all global variables. (Using PadWalker).
=== {lexicals()}
Alias to {locals()}
lib/Acme/Locals.pm view on Meta::CPAN
= DEPENDENCIES
* [version]
* [PadWalker]
* [Params::Util]
= INCOMPATIBILITIES
view all matches for this distribution
view release on metacpan or search on metacpan
Octarine.pm view on Meta::CPAN
# I need some hooks in Acme::Colour's constructor. But as we all know cut and
# paste is bad. So we are good and don't do that:
use B::Deparse;
use PadWalker 'closed_over';
# Frustratingly, he uses a package lexical %r, which foils a simple re-eval of
# the deparsed method code.
my $deparse = B::Deparse->new("-sC");
my $body = $deparse->coderef2text(\&Acme::Colour::new);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/RPC.pm view on Meta::CPAN
use IO::Handle;
# use Devel::Pointer;
use JSON;
use Data::Dumper;
use Devel::Caller 'caller_cv';
use PadWalker 'peek_sub';
use Scalar::Util 'blessed';
my $comment = <<'EOF';
Todo:
lib/Acme/RPC.pm view on Meta::CPAN
* json will croak if a reference contains objects in side it somewhere. Should handle this gracefully.
* Offer JSON output! Not just Data::Dumper. Do this for action=dump, action=call, and the default tree view.
* If Devel::Leak won't give us refs... have to do an Acme::State style crawl from main::,
but crawling into each sub and looking at its lexicals with PadWalker.
Could make for a nice tree view.
Would also make it easy to filter out the variables that hold refs.
* Maybe this should be called Acme::RPC.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/RightSideOutObject.pm view on Meta::CPAN
use strict; no strict 'refs';
use warnings;
use Data::Alias;
use PadWalker;
use B;
use Scalar::Util;
sub import {
*{caller().'::guts'} = sub {
lib/Acme/RightSideOutObject.pm view on Meta::CPAN
my $code = *{$class.'::'.$sym}{CODE} or next;
my $op = B::svref_2object($code) or next;
my $rootop = $op->ROOT or next;
$$rootop or next; # not XS
$op->STASH->NAME eq $class or next; # not imported
my $vars = PadWalker::peek_sub($code) or next; # don't know why this would fail but when it does, I think it dies
for my $var (keys %$vars) {
next unless $var =~ m/^\%/;
next unless exists $vars->{$var};
next unless exists $vars->{$var}->{$id};
$debug and warn " ... $var is $vars->{$var}->{$id}\n";
view all matches for this distribution
view release on metacpan or search on metacpan
local/lib/perl5/Sub/Uplevel.pm view on Meta::CPAN
#pod
#pod See http://www.perl.com/perl/misc/Artistic.html
#pod
#pod =head1 SEE ALSO
#pod
#pod PadWalker (for the similar idea with lexicals), Hook::LexWrap,
#pod Tcl's uplevel() at http://www.scriptics.com/man/tcl8.4/TclCmd/uplevel.htm
#pod
#pod =cut
1;
local/lib/perl5/Sub/Uplevel.pm view on Meta::CPAN
See http://www.perl.com/perl/misc/Artistic.html
=head1 SEE ALSO
PadWalker (for the similar idea with lexicals), Hook::LexWrap,
Tcl's uplevel() at http://www.scriptics.com/man/tcl8.4/TclCmd/uplevel.htm
=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
=head1 SUPPORT
view all matches for this distribution
view release on metacpan or search on metacpan
cpanfile.snapshot view on Meta::CPAN
Data::Alias 0
Exporter::Tiny 0.026
ExtUtils::MakeMaker 6.17
Module::Runtime 0
Moo 1.003001
PadWalker 0
Parse::Keyword 0.06
Return::Type 0.004
Sub::Util 0
Type::Parser 0.032
Type::Registry 0.032
cpanfile.snapshot view on Meta::CPAN
requirements:
ExtUtils::MakeMaker 6.30
XSLoader 0
strict 0
warnings 0
PadWalker-1.98
pathname: R/RO/ROBIN/PadWalker-1.98.tar.gz
provides:
PadWalker 1.98
requirements:
ExtUtils::MakeMaker 0
perl 5.008001
Params-Util-1.07
pathname: A/AD/ADAMK/Params-Util-1.07.tar.gz
view all matches for this distribution
view release on metacpan or search on metacpan
bootstrap Amb $VERSION;
use B::Generate 1.13;
use Carp qw(confess croak);
use PadWalker;
BEGIN { *CORE::GLOBAL::die = \&dier } ;
my (%patched, %cv, @stack, $charged, $debug);
$debug = $ENV{AMB_DEBUG}||0;
sub find_ctx
{
# get the COP that is right before the call of amb()
my $what = shift;
my $up = PadWalker::_upcontext(1);
fail $what unless $up;
my $op = Amb::caller_op($up);
fail $what unless $op and ref($op) eq 'B::COP';
# ensure that the call is inside if(...) statement
fail $what unless $x and ref($x) eq 'B::UNOP';
$x = $x-> first;
fail $what unless $x and ref($x) eq 'B::LOGOP' and $x-> name =~ /^(cond_expr|and)$/;
# get the cv frame that has called
my $upper = PadWalker::_upcontext(2);
my $cx;
if ( $upper) {
$cx = Amb::context_cv($upper);
fail $what unless $cx and ref($cx) eq 'CODE';
}
view all matches for this distribution
view release on metacpan or search on metacpan
0.07 2017-12-01
- Use common::sense
- Use DumpLex and PadWalker to include as much closing state as possible in
serialized task code
- Fix typo in AnyEvent::ProcessPool::Util::cpu_count and add android to linux
case
0.06 2017-11-13
view all matches for this distribution
view release on metacpan or search on metacpan
lib/BS/Common.pm view on Meta::CPAN
const our $DEBUG => ( any { $_ } @ENV{qw(BS_DEBUG DEBUG)} ) || 0;
const our $TRIM_RE => qr/\s*(.+)\s*\n*/i;
eval {
use Devel::StackTrace::WithLexicals;
use PadWalker qw(peek_my peek_our);
use Module::Metadata;
} if $DEBUG;
my class BsxResult {
use utf8;
view all matches for this distribution
view release on metacpan or search on metacpan
# Perl Modules - overload example code.
pod Set::Scalar::Base -e
#############################################################
## Perl Modules - PadWalker
#############################################################
# View the lexical variables in a scope.
perl -MPadWalker=peek_my -Mojo -E 'my $var=123; say r peek_my(0)'
{
"\$var" => \123
}
# Call a method of an object obtained from peek_my
perl -MDevel::Peek -MPadWalker=peek_my -Mojo -E '{ package My; sub Func {"My-Func"} } my $var = bless {}, "My"; my $obj_ref = peek_my(0)->{q($var)}; Dump $var; Dump $obj_ref; say $$obj_ref->Func'
# Update a lexical variable in a different scope.
my $lexicals = peek_my(1);
$lexicals->{'@arr'}->[1] = 4;
#############################################################
## Perl Modules - PadWalker::Eval
#############################################################
# Idea for a new module to run eval at a specific scope.
perl -E 'my $v=1; {package My; my $v=2; sub run_code { my ($code) = @_; my $v=3; eval $code }} my $v=4, say My::run_code(q($v))'
# PadWalker::Eval ideas.
sub eval ($string, $scope_level=0)
#############################################################
## Perl Modules - Parallel::ForkManager
view all matches for this distribution
view release on metacpan or search on metacpan
cpanfile.snapshot view on Meta::CPAN
requirements:
ExtUtils::MakeMaker 6.30
XSLoader 0
strict 0
warnings 0
PadWalker-2.1
pathname: R/RO/ROBIN/PadWalker-2.1.tar.gz
provides:
PadWalker 2.1
requirements:
ExtUtils::MakeMaker 0
perl 5.008001
Params-Util-1.07
pathname: A/AD/ADAMK/Params-Util-1.07.tar.gz
cpanfile.snapshot view on Meta::CPAN
Exporter 5.63
ExtUtils::CBuilder 0
Module::Build 0.38
Mouse 0.92
Mouse::Util::TypeConstraints 0
PadWalker 1.92
Scalar::Util 1.21
perl 5.008001
Spiffy-0.46
pathname: I/IN/INGY/Spiffy-0.46.tar.gz
provides:
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/MultiModule/Tasks/OutOfBand.pm view on Meta::CPAN
$App::MultiModule::Tasks::OutOfBand::VERSION = '1.171870';
use strict;use warnings;
use Storable;
use Message::Match qw(mmatch);
use IPC::Transit;
use PadWalker qw(peek_my);
$Storable::Deparse = 1;
$Storable::Deparse = 1;
$Storable::Eval = 1;
$Storable::Eval = 1;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/PrimaX/InputHistory.pm view on Meta::CPAN
#
# If the event is properly handled by one of the hooks, the hook should call the
# clear_event() method on this object.
{
# Keep the notifications hash in its own lexically scoped block so that
# other's can't mess with it (at least, not without using PadWalker or some
# such).
my %notifications = (
%{Prima::InputLine-> notification_types()},
PressEnter => nt::Request,
Evaluate => nt::Action,
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/REPL.pm view on Meta::CPAN
package App::REPL;
use warnings;
use strict;
use Data::Dumper;
use PadWalker 'peek_my';
use Term::ANSIColor ':constants';
$Term::ANSIColor::AUTORESET = 1;
require Exporter;
use vars qw(@ISA @EXPORT $VERSION);
view all matches for this distribution
view release on metacpan or search on metacpan
t/retropan.t view on Meta::CPAN
MSCHILLI/LWP-Protocol-https-6.06
RJBS/CPAN-Uploader-0.103007
ETHER/Dist-Zilla-Plugin-Test-Compile-2.051
ETHER/Dist-Zilla-Plugin-Keywords-0.006
ETHER/Module-Runtime-Conflicts-0.001
ROBIN/PadWalker-2.0
RCLAMP/Devel-Caller-2.06
RCLAMP/Devel-LexAlias-0.05
SHANCOCK/Perl-Tidy-20140711
DOY/Eval-Closure-0.11
RJBS/Config-MVP-Reader-INI-2.101463
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Menlo/Sqitch.pm view on Meta::CPAN
Moo
MooX-Types-MooseLike
MySQL-Config
Package-Stash
Package-Stash-XS
PadWalker
Params-ValidationCompiler
Path-Class
Ref-Util
Ref-Util-XS
Regexp-Util
view all matches for this distribution
view release on metacpan or search on metacpan
"DBI" : "== 1.643",
"Data::Printer" : "== 1.000004",
"Faker" : "== 1.04",
"Math::Round" : "== 0.07",
"Moo" : "== 2.005004",
"PadWalker" : "== 2.5",
"Teng" : "== 0.32",
"Time::Moment" : "== 0.44",
"Try::Tiny" : "== 0.30",
"Type::Tiny" : "== 1.012001",
"Type::Tiny::XS" : "== 0.022",
view all matches for this distribution
view release on metacpan or search on metacpan
t/mymodules view on Meta::CPAN
Net::SSLeay
Net::Telnet
Number::Compare
PAR::Dist
PPI
PadWalker
Params::Util
Params::Validate
Parse::RecDescent
Path::Class
Perl::Critic
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Binding.pm view on Meta::CPAN
package Binding;
use warnings;
use strict;
use PadWalker qw(peek_my peek_our peek_sub closed_over);
use Devel::Caller qw(caller_cv);
use Data::Dump qw(pp);
use 5.008;
lib/Binding.pm view on Meta::CPAN
Returns all variables declared with "my" in the given binding.
Returns a hashref, which keys are variable names and values are
references to variable values.
See C<peek_my> function in L<PadWalker>.
=item our_vars
Returns all variables declared with "our" that's visible in the given
binding.
Returns a hashref, which keys are variable names and values are
references to variable values.
See C<peek_our> function in L<PadWalker>.
=back
=head1 DEPENDENCIES
L<PadWalker>, L<Data::Dump>, L<Devel::Caller>
=head1 BUGS AND LIMITATIONS
No bugs have been reported.
view all matches for this distribution
view release on metacpan or search on metacpan
t/lib/Sub/Uplevel.pm view on Meta::CPAN
See http://www.perl.com/perl/misc/Artistic.html
=head1 SEE ALSO
PadWalker (for the similar idea with lexicals), Hook::LexWrap,
Tcl's uplevel() at http://www.scriptics.com/man/tcl8.4/TclCmd/uplevel.htm
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
t/lib/Sub/Uplevel.pm view on Meta::CPAN
See http://www.perl.com/perl/misc/Artistic.html
=head1 SEE ALSO
PadWalker (for the similar idea with lexicals), Hook::LexWrap,
Tcl's uplevel() at http://www.scriptics.com/man/tcl8.4/TclCmd/uplevel.htm
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
CygwinVendor.pm view on Meta::CPAN
IO::Socket::IP 0.29
B::Generate 1.48
PadWalker 1.98
Data::Alias 1.18
=head1 DESCRIPTION
view all matches for this distribution
view release on metacpan or search on metacpan
Bundle/OS2_default7.pm view on Meta::CPAN
=head1 CONTENTS
IO::Zlib
PadWalker
Compress::Bzip2
GD::Graph
view all matches for this distribution
view release on metacpan or search on metacpan
Net::IP
Net::LDAPS
PadWalker
PHP::Serialization
Pod::WSDL
view all matches for this distribution
view release on metacpan or search on metacpan
lib/CGI/Inspect.pm view on Meta::CPAN
error logs you'll see something like "Please connect to localhost:8080". When
you do, you'll be greeted with an inspection UI which includes a stack trace,
REPL, and other goodies.
To work it's magic this modules uses Continuity, Devel::LexAlias,
Devel::StackTrace::WithLexicals, and their prerequisites (such as PadWalker).
Remember that you can always install such things locally for debugging -- no
need to install them systemwide (in case you are afraid of the power that they
provide).
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
Debian_CPANTS.txt view on Meta::CPAN
"libouch-perl", "Ouch", "0.0401", "0", "0"
"libpackage-deprecationmanager-perl", "Package-DeprecationManager", "0.10", "0", "0"
"libpackage-pkg-perl", "Package-Pkg", "0.0019", "0", "0"
"libpackage-stash-perl", "Package-Stash", "0.29", "0", "1"
"libpackage-stash-xs-perl", "Package-Stash-XS", "0.22", "0", "0"
"libpadwalker-perl", "PadWalker", "1.92", "0", "1"
"libpalm-perl", "p5-Palm", "1.012", "0", "2"
"libpango-perl", "Pango", "1.221", "0", "1"
"libpar-dist-perl", "PAR-Dist", "0.45", "0", "0"
"libpar-packer-perl", "PAR-Packer", "1.008", "0", "2"
"libpar-perl", "PAR", "1.002", "0", "1"
view all matches for this distribution
view release on metacpan or search on metacpan
example/moose-dif/Moose-2.1005-META.json view on Meta::CPAN
"IO::String" : "0",
"Locale::US" : "0",
"Module::Info" : "0",
"Module::Refresh" : "0",
"MooseX::NonMoose" : "0",
"PadWalker" : "0",
"Params::Coerce" : "0",
"Regexp::Common" : "0",
"SUPER" : "0",
"Specio" : "0.07",
"Test::Deep" : "0",
view all matches for this distribution
view release on metacpan or search on metacpan
distroprefs/RJBS.MIME-Light.yml
distroprefs/RJRAY.RPC-XML.yml
distroprefs/RKINYON.DBM-Deep.yml
distroprefs/RKOBES.PPM-Make.yml
distroprefs/RMUHLE.classes.yml
distroprefs/ROBIN.PadWalker.yml
distroprefs/ROBIN.Want.yml
distroprefs/ROCKY.Array-Columnize.yml
distroprefs/ROKR.Config-Identity.yml
distroprefs/RONAN.Transform-Canvas.yml
distroprefs/ROODE.Readonly-XS.yml
view all matches for this distribution