Tie-Trace

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

         "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" : {

META.yml  view on Meta::CPAN

    - 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>'

cpanfile  view on Meta::CPAN

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 )