Tie-Trace
view release on metacpan or search on metacpan
"requires" : {
"Test::CPAN::Meta" : "0",
"Test::MinimumVersion::Fast" : "0.04",
"Test::PAUSE::Permissions" : "0.04",
"Test::Pod" : "1.41",
"Test::Spellunker" : "v0.2.7"
}
},
"runtime" : {
"requires" : {
"PadWalker" : "0"
}
},
"test" : {
"requires" : {
"Test::Base" : "0",
"Test::More" : "0"
}
}
},
"provides" : {
- share
- eg
- examples
- author
- builder
provides:
Tie::Trace:
file: lib/Tie/Trace.pm
version: '0.17'
requires:
PadWalker: '0'
resources:
bugtracker: https://github.com/ktat/Tie-Trace/issues
homepage: https://github.com/ktat/Tie-Trace
repository: git://github.com/ktat/Tie-Trace.git
version: '0.17'
x_contributors:
- 'ktat <ktat.is@gmail.com>'
requires 'PadWalker';
on test => sub {
requires 'Test::More';
requires 'Test::Base';
};
on build => sub {
requires 'ExtUtils::MakeMaker';
};
lib/Tie/Trace.pm view on Meta::CPAN
package Tie::Trace;
use strict;
use warnings;
use PadWalker ();
use Tie::Hash ();
use Tie::Array ();
use Tie::Scalar ();
use Carp ();
use Data::Dumper ();
use base qw/Exporter/;
use constant {
SCALAR => 0,
SCALARREF => 1,
lib/Tie/Trace.pm view on Meta::CPAN
}elsif($s_type eq 'ARRAY'){
$s_ = [ @$s ];
}elsif($s_type eq 'HASH'){
$s_ = { %$s };
}
Carp::croak("must pass one argument.") unless $s;
my @options = @_;
my $var_name;
eval{
$var_name = PadWalker::var_name(1, $s);
};
my $pkg = defined $var_name ? (caller)[0] : undef;
my $tied_value = tie $s_type eq 'SCALAR' ? $$s : $s_type eq 'ARRAY' ? @$s : %$s, "Tie::Trace", var => $var_name, pkg => $pkg, @options;
local $QUIET = 1;
if($s_type eq 'SCALAR'){
$$s = $s_;
}elsif($s_type eq 'ARRAY'){
@$s = @$s_ if @$s_;
}elsif($s_type eq 'HASH'){
( run in 0.656 second using v1.01-cache-2.11-cpan-05444aca049 )