view release on metacpan or search on metacpan
lib/Script/State.pm view on Meta::CPAN
package Script::State;
use strict;
use warnings;
use PadWalker qw(var_name);
use Data::Dumper;
our $VERSION = '0.03';
our $DATAFILE;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Sepia.pm view on Meta::CPAN
=cut
sub lexical_completions
{
eval q{ use PadWalker 'peek_sub' };
# "internal" function, so don't warn on failure
return if $@;
*lexical_completions = sub {
my ($type, $str, $sub) = @_;
$sub = "$PACKAGE\::$sub" unless $sub =~ /::/;
lib/Sepia.pm view on Meta::CPAN
'lsmod [PATTERN]', 'List loaded modules matching PATTERN.';
}
=item C<repl_strict([$value])>
Toggle strict mode. Requires L<PadWalker> and L<Devel::LexAlias>.
=cut
sub repl_strict
{
eval q{ use PadWalker qw(peek_sub set_closed_over);
use Devel::LexAlias 'lexalias';
};
if ($@) {
print "Strict mode requires PadWalker and Devel::LexAlias.\n";
} else {
*repl_strict = sub {
my $x = as_boolean(shift, $STRICT);
if ($x && !$STRICT) {
$STRICT = {};
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Smart/Args/TypeTiny.pm view on Meta::CPAN
package Smart::Args::TypeTiny;
use strict;
use warnings;
our $VERSION = "0.14";
use Carp ();
use PadWalker qw/var_name/;
use Exporter 'import';
our @EXPORT = qw/args args_pos/;
$Carp::CarpInternal{+__PACKAGE__}++;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Smart/Args.pm view on Meta::CPAN
use strict;
use warnings;
use 5.008001;
our $VERSION = '0.14';
use Exporter 'import';
use PadWalker qw/var_name/;
use Carp ();
use Mouse::Util::TypeConstraints ();
*_get_isa_type_constraint = \&Mouse::Util::TypeConstraints::find_or_create_isa_type_constraint;
*_get_does_type_constraint = \&Mouse::Util::TypeConstraints::find_or_create_does_type_constraint;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Smart/Options/Declare.pm view on Meta::CPAN
use strict;
use warnings;
use Exporter 'import';
use Smart::Options;
use PadWalker qw/var_name/;
our @EXPORT = qw(opts opts_coerce);
our $COERCE = {
Multiple => {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Store/Opaque.pm view on Meta::CPAN
my $super_sensitive = shift;
this_can_die();
}
Again, there's a myriad of ways to explicitly defeat that, but I'd bring up
the more powerful Data::Dump::Streamer (in conjunction with PadWalker and
B::Deparse) next. Even inside out objects can accidentally be dumped if you're
using Data::Dump::Streamer to dump their methods.
It's becoming progressively less easy to make a mistake
like the above, but why bother?
view all matches for this distribution
view release on metacpan or search on metacpan
lib/String/Bash.pm view on Meta::CPAN
use Sub::Exporter -setup => {
exports => [qw( bash )],
};
use Regexp::Common qw( balanced );
use PadWalker qw( peek_my peek_our );
use Scalar::Util qw( blessed );
sub bash($@) {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/String/Interpolate/Delayed.pm view on Meta::CPAN
our $WORKAROUND = 1;
use overload q[""] => "interpolated", fallback => 1;
use PadWalker ();
use PerlX::QuoteOperator ();
use String::Interpolate ();
use UNIVERSAL::ref;
sub import
lib/String/Interpolate/Delayed.pm view on Meta::CPAN
else {
$$stri->pragma('import strict "vars";');
}
$stri->exec(
_clean(PadWalker::peek_our 1),
_clean(PadWalker::peek_my 1),
grep(ref($_) eq 'HASH', @_),
);
return $stri->exec($$self);
}
lib/String/Interpolate/Delayed.pm view on Meta::CPAN
B<< What is C<$str>? >> It's actually a blessed object, but it uses
L<UNIVERSAL::ref> to conceal this fact. (C<blessed> from L<Scalar::Util>
knows the truth though.)
B<< And it overloads stringification, right? >> By George! You've got it!
Yes, it overloads stringification and plays silly games with L<PadWalker>
and L<String::Interpolate>.
=head2 Methods
As mentioned above, strings with delayed interpolation are blessed objects.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/String/Interpolate.pm view on Meta::CPAN
local *_ = %_ ? String::Interpolate::Func->wrap_hash('_',\%_) : {}
if $safe && ! $$self->{unsafe_underscore};
my $safe_symbols = $safe && ! $$self->{unsafe_symbols};
# use PadWalker qw( peek_my ); use Data::Dumper; die Dumper peek_my(2);
my @pad_map;
if ( $$self->{lexicals} ) {
my $depth = 1;
$depth++ while caller($depth)->isa(__PACKAGE__);
# die "$depth ". scalar(caller($depth));
require PadWalker;
my $pad = PadWalker::peek_my($depth+1);
# use Data::Dumper; die Dumper $pad;
while ( my ( $k,$v ) = each %$pad ) {
$k =~ s/^([@%\$])//
or die "$k does not start with \$, \@ or \%";
$v = *$v{$type_from_prefix{$1}} if ref $v eq 'GLOB';
lib/String/Interpolate.pm view on Meta::CPAN
=item lexicals
This feature is EXPERIMENTAL. Do not use it in real code.
Tells the String::Interpolate object whether or not to use the
PadWalker module to import all lexical variables from the calling
context into the temporary package or Safe compartment. By default
this does not happen as it is conceptually ugly and quite expensive.
$i->lexicals; # Enable lexicals
$i->lexicals(1) # Enable lexicals
view all matches for this distribution
view release on metacpan or search on metacpan
lib/String/TT.pm view on Meta::CPAN
package String::TT;
use strict;
use warnings;
use PadWalker qw(peek_my);
use Carp qw(confess croak);
use Template;
use List::Util qw(min);
use Sub::Exporter -setup => {
exports => [qw/tt strip/],
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Sub/Block.pm view on Meta::CPAN
return $_[0];
}
elsif (@_ == 1 and ref($_[0]) eq q(CODE))
{
require B::Deparse;
require PadWalker;
$deparse ||= 'B::Deparse'->new;
my $coderef = shift;
$class->_check_coderef($coderef);
my $closures = PadWalker::closed_over($coderef);
my $perlcode = $deparse->coderef2text($coderef);
$perlcode =~ s/(?:\A\{)|(?:\}\z)//g;
return +{ sub => Sub::Quote::quote_sub($perlcode, $closures) }
}
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
lib/Sub/Go.pm view on Meta::CPAN
: $ret->[0] // $ret;
}
}
sub stop {
require PadWalker;
my $self_ref;
for ( 2 .. 3 ) {
my $h = PadWalker::peek_my( $_ );
$self_ref = $h->{ '$_go_self' } and last;
}
!$self_ref and croak 'Misplaced yield. It can only be used in a go block.';
my $self = ${ $self_ref };
$self->{stop} = 1;
lib/Sub/Go.pm view on Meta::CPAN
sub skip {
return bless {}, 'Sub::Go::Break';
}
sub yield {
require PadWalker;
my $self_ref;
for ( 2 .. 3 ) {
my $h = PadWalker::peek_my( $_ );
$self_ref = $h->{ '$_go_self' } and last;
}
!$self_ref and croak 'Misplaced yield. It can only be used in a go block.';
my $self = ${ $self_ref };
$self->{yielded} = 1;
lib/Sub/Go.pm view on Meta::CPAN
This is pre-alfa, out in the CPAN for a test-drive. There
are still inconsistencies in the syntax that need some
more thought, so expect things to change badly.
L<PadWalker>, a dependency, may segfault in perl 5.14.1.
=head1 SEE ALSO
L<autobox::Core> - has an C<each> method that can be chained together
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Sub/Information.pm view on Meta::CPAN
(e.g., you're calling C<variables()> from inside the sub or in a call stack
the sub is currently in).
The returned values are not cached.
From: C<PadWalker::peek_sub>
=head3 C<line>
my $line_number = $info->line;
lib/Sub/Information.pm view on Meta::CPAN
},
package => {
code => sub { Sub::Identify::stash_name(shift) }
},
variables => {
code => sub { PadWalker::peek_sub(shift) }
},
line => { code => sub { B::svref_2object(shift)->START->line } },
file => { code => sub { B::svref_2object(shift)->START->file } },
# XXX I suspect these are useless
lib/Sub/Information.pm view on Meta::CPAN
my %function_from = (
'Scalar::Util' => [qw/address blessed/],
'Data::Dump::Streamer' => ['code'],
'Sub::Identify' => [qw/full_name name package/],
'PadWalker' => [qw/variables/],
#'Devel::Size' => [qw/size total_size/],
);
while ( my ( $package, $methods ) = each %function_from ) {
lib/Sub/Information.pm view on Meta::CPAN
=item * L<Devel::Size>
=item * L<Data::Dump::Streamer>
=item * L<PadWalker>
=item * L<Sub::Identify>
=item * L<Scalar::Util>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Sub/Methodical.pm view on Meta::CPAN
my %methodical;
my %wrapped;
my %auto_methodical;
use B;
use PadWalker;
use Filter::EOF;
use Sub::Install ();
use Sub::Exporter -setup => {
exports => [
MODIFY_CODE_ATTRIBUTES => \&_build_MODIFY,
lib/Sub/Methodical.pm view on Meta::CPAN
code => sub {
if (eval { $_[0]->isa($pkg) }) {
#warn "calling $name directly: @_\n";
return $sub->(@_);
}
my $pad = PadWalker::peek_my(1);
my $self = $pad->{'$self'};
unless ($self) {
die "can't find \$self!";
}
unless (eval { $$self->isa($pkg) }) {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Sub/Parameters.pm view on Meta::CPAN
if $] < 5.007002;
my $sub = caller_cv($Carp::CarpLevel);
my $referent = $_[2];
require PadWalker;
my %names = reverse %{ PadWalker::peek_sub( $sub ) };
my $fullname = $names{$referent}
or croak "couldn't find the name of $referent";
++$Carp::CarpLevel;
_Parameter($sub, $referent, $fullname, $_[4]);
lib/Sub/Parameters.pm view on Meta::CPAN
=back
=head1 SEE ALSO
C<Attribute::Handlers>, C<PadWalker>, C<Hook::LexWrap>, C<Devel::LexAlias>
=head1 AUTHOR
Richard Clamp E<lt>richardc@unixbeard.netE<gt>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/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;
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
=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
lib/Switcheroo.pm view on Meta::CPAN
our @EXPORT_OK = qw( match );
our @ISA = qw( Exporter::Tiny );
use Exporter::Tiny qw( );
use match::simple qw( match );
use PadWalker qw( peek_my set_closed_over );
use Parse::Keyword { switch => \&_parse_switch };
sub import
{
my $pkg = caller;
view all matches for this distribution
view release on metacpan or search on metacpan
share/2001.csv view on Meta::CPAN
Net-XWhois-0.81,2001-07-14T07:39:15,VIPUL,cpan,released,0.81,,Net-XWhois,"Whois Client Interface for Perl5."
Net-XWhois-0.82,2001-07-14T07:44:02,VIPUL,cpan,released,0.82,,Net-XWhois,"Whois Client Interface for Perl5."
Text-Unidecode-0.03,2001-07-14T08:14:30,SBURKE,backpan,released,0.03,1,Text-Unidecode,"US-ASCII transliterations of Unicode text"
Mail-Box-1.316,2001-07-14T08:16:15,MARKOV,backpan,released,1.316,,Mail-Box,"Manage a message-folder."
Text-Unidecode-0.04,2001-07-14T08:43:42,SBURKE,cpan,released,0.04,,Text-Unidecode,"US-ASCII transliterations of Unicode text"
PadWalker-0.03,2001-07-14T13:56:18,ROBIN,backpan,released,0.03,1,PadWalker,"walk pads"
Tie-LazyList-0.05,2001-07-14T18:26:36,GENIE,latest,released,0.05,,Tie-LazyList,"Perl extension for lazy lists growing on demand"
Tk-800.012-bin-00-os2,2001-07-14T21:06:00,ILYAZ,cpan,released,800.012,,Tk,"Perl/Tk script to provide a graphical user interface for testing Perl/Tk commands and scripts."
Math-BigInt-1.37,2001-07-14T22:55:24,TELS,backpan,released,1.37,,Math-BigInt,"Arbitrary size integer math package"
Math-String-1.13,2001-07-14T22:55:39,TELS,backpan,released,1.13,,Math-String,"Arbitrary sized integers having arbitrary charsets to calculate with password/key rooms."
Math-BigInt-BitVect-1.01,2001-07-14T23:00:27,TELS,backpan,released,1.01,,Math-BigInt-BitVect,"Perl module to use Bit::Vector for Math::BigInt"
view all matches for this distribution
view release on metacpan or search on metacpan
share/2001.csv view on Meta::CPAN
Net-XWhois-0.81,2001-07-14T07:39:15,VIPUL,cpan,released,0.81,,Net-XWhois,"Whois Client Interface for Perl5."
Net-XWhois-0.82,2001-07-14T07:44:02,VIPUL,cpan,released,0.82,,Net-XWhois,"Whois Client Interface for Perl5."
Text-Unidecode-0.03,2001-07-14T08:14:30,SBURKE,backpan,released,0.03,1,Text-Unidecode,"US-ASCII transliterations of Unicode text"
Mail-Box-1.316,2001-07-14T08:16:15,MARKOV,backpan,released,1.316,,Mail-Box,"Manage a message-folder."
Text-Unidecode-0.04,2001-07-14T08:43:42,SBURKE,cpan,released,0.04,,Text-Unidecode,"US-ASCII transliterations of Unicode text"
PadWalker-0.03,2001-07-14T13:56:18,ROBIN,backpan,released,0.03,1,PadWalker,"walk pads"
Tie-LazyList-0.05,2001-07-14T18:26:36,GENIE,latest,released,0.05,,Tie-LazyList,"Perl extension for lazy lists growing on demand"
Tk-800.012-bin-00-os2,2001-07-14T21:06:00,ILYAZ,cpan,released,800.012,,Tk,"Perl/Tk script to provide a graphical user interface for testing Perl/Tk commands and scripts."
Math-BigInt-1.37,2001-07-14T22:55:24,TELS,backpan,released,1.37,,Math-BigInt,"Arbitrary size integer math package"
Math-String-1.13,2001-07-14T22:55:39,TELS,backpan,released,1.13,,Math-String,"Arbitrary sized integers having arbitrary charsets to calculate with password/key rooms."
Math-BigInt-BitVect-1.01,2001-07-14T23:00:27,TELS,backpan,released,1.01,,Math-BigInt-BitVect,"Perl module to use Bit::Vector for Math::BigInt"
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Task/BeLike/FLORA.pm view on Meta::CPAN
=head2 Optional Dependencies Of Other Modules
=head3 L<CPAN::Reporter>
=head3 L<PadWalker>
=head3 L<Task::SDK::Moose>
=head3 L<Term::ReadLine::Gnu>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Task/BeLike/RJRAY.pm view on Meta::CPAN
=head3 L<PPI::XS>
=head3 L<PPIx::Regexp>
=head3 L<PadWalker>
=head3 L<Perl::Critic>
=head3 L<Perl::Critic::Bangs>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Task/BeLike/RWP.pm view on Meta::CPAN
=item L<Clipboard> (L<GitHub|https://github.com/shlomif/Clipboard>)
Cross-platform clipboard management
=item L<PadWalker> (L<GitHub|https://github.com/robinhouston/PadWalker>)
Supported by Perl Debugger as the C<y> command
=item L<Data::Printer> (L<GitHub|https://github.com/garu/Data-Printer>)
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Task/BeLike/SCHWIGON.pm view on Meta::CPAN
=head3 L<CPAN::Reporter>
=head3 L<Git::Repository>
=head3 L<PadWalker>
=head3 L<Term::ReadLine::Gnu>
=head3 L<Test::Reporter>
view all matches for this distribution
view release on metacpan or search on metacpan
"MooseX::Declare" : "0",
"MooseX::MultiMethods" : "0",
"MooseX::Params::Validate" : "0",
"PDL" : "0",
"Package::Stash" : "0",
"PadWalker" : "0",
"Params::Validate" : "0",
"Path::Class" : "0",
"Path::Class::Dir" : "0",
"Path::Class::File" : "0",
"Path::Tiny" : "0",
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
lib/Term/Menus.pm view on Meta::CPAN
unless ($@) {
$term_input=1;
import Term::RawInput;
}
}
eval { require PadWalker };
unless ($@) {
$padwalker=1;
import PadWalker;
}
eval { require Devel::Symdump };
unless ($@) {
#$devel_symdump=1;
import Devel::Symdump;
lib/Term/Menus.pm view on Meta::CPAN
my $n=0;
WH: while (1) {
{
local $SIG{__DIE__}; # No sigdie handler
eval {
$name=PadWalker::var_name($n++,$_[0]);
};
if ($@) {
undef $@;
my $o=0;
while (1) {
eval {
my $vars=PadWalker::peek_our($o++);
foreach my $key (keys %{$vars}) {
if (ref $vars->{$key} eq 'HASH' &&
%{$_[0]} eq %{$vars->{$key}}) {
$name=$key;
last;
lib/Term/Menus.pm view on Meta::CPAN
next if $hash=~/^Text::Balanced::/;
next if $hash=~/^Data::Dump::Streamer/;
next if $hash=~/^re::EXPORT_OK/;
next if $hash=~/^fa_code::email_addresses/;
next if $hash=~/^fa_code::email_defaults/;
next if $hash=~/^PadWalker::/;
next if $hash=~/^Fcntl::/;
next if $hash=~/^B::Utils::/;
next if $hash=~/^ExtUtils::/;
next if $hash=~/^Exporter::/;
next if $hash=~/^Moo::/;
view all matches for this distribution
view release on metacpan or search on metacpan
t/data/cpan-river-1000-perl-5.27.0.psv view on Meta::CPAN
Package-DeprecationManager|DROLSKY|Package-DeprecationManager-0.17|0.17|PASS
Package-MoreUtil|PERLANCAR|Package-MoreUtil-0.58|0.58|PASS
Package-Stash|DOY|Package-Stash-0.37|0.37|PASS
Package-Stash-XS|DOY|Package-Stash-XS-0.28|0.28|PASS
Package-Variant|MSTROUT|Package-Variant-1.003002|1.003002|PASS
PadWalker|ROBIN|PadWalker-2.3|2.3|PASS
Padre|PLAVEN|Padre-1.00|1.00|NA
Pango|XAOC|Pango-1.227|1.227|PASS
Parallel-ForkManager|YANICK|Parallel-ForkManager-1.19|1.19|PASS
Params-Classify|ZEFRAM|Params-Classify-0.015|0.015|PASS
Params-Util|ADAMK|Params-Util-1.07|1.07|PASS
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Test/Expander/Constants.pm view on Meta::CPAN
NONFATAL => qw( deprecated exec internal malloc newline once portable redefine recursion uninitialized );
use B qw( svref_2object );
use Const::Fast;
use Exporter qw( import );
use PadWalker qw( peek_our );
use Scalar::Readonly qw( readonly_on );
use Test2::Tools::Basic;
readonly_on( $VERSION );
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Test/Files/Constants.pm view on Meta::CPAN
FATAL => qw( all ),
NONFATAL => qw( deprecated exec internal malloc newline portable recursion );
use Const::Fast qw( const );
use Exporter qw( import );
use PadWalker qw( peek_our );
const our $DIRECTORY_OPTIONS => {
EXISTENCE_ONLY => 0,
FILTER => undef,
NAME_PATTERN => '.',
view all matches for this distribution