File: Peek.pm

package info (click to toggle)
libdevel-repl-perl 1.003011-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 408 kB
  • ctags: 252
  • sloc: perl: 3,380; makefile: 2
file content (63 lines) | stat: -rw-r--r-- 1,123 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/perl

package Devel::REPL::Plugin::Peek;
use Devel::REPL::Plugin;

use Devel::Peek qw(Dump);

use namespace::clean -except => [ 'meta' ];

sub BEFORE_PLUGIN {
    my $self = shift;
    $self->load_plugin('Turtles');
}

sub expr_command_peek {
  my ( $self, $eval, $code ) = @_;

  my @res = $self->eval($code);

  if ( $self->is_error(@res) ) {
    return $self->format(@res);
  } else {
    # can't override output properly
    # FIXME do some dup wizardry
    Dump(@res);
    return ""; # this is a hack to print nothing after Dump has already printed. PLZ TO FIX KTHX!
  }
}

__PACKAGE__

__END__

=pod

=head1 NAME

Devel::REPL::Plugin::Peek - L<Devel::Peek> plugin for L<Devel::REPL>.

=head1 SYNOPSIS

  repl> #peek "foo"
  SV = PV(0xb3dba0) at 0xb4abc0
    REFCNT = 1
    FLAGS = (POK,READONLY,pPOK)
    PV = 0x12bcf70 "foo"\0
    CUR = 3
    LEN = 4

=head1 DESCRIPTION

This L<Devel::REPL::Plugin> adds a C<peek> command that calls
L<Devel::Peek/Dump> instead of the normal printing.

=head1 SEE ALSO

L<Devel::REPL>, L<Devel::Peek>

=head1 AUTHOR

Yuval Kogman E<lt>nothingmuch@woobling.orgE<gt>

=cut