LOGO

                 ___====-_  _-====___
           _--~~~#####// '  ` \\#####~~~--_
         -~##########// (    ) \\##########~-_
       -############//  |\^^/|  \\############-
     _~############//   (O||O)   \\############~_
    ~#############((     \\//     ))#############~
   -###############\\    (oo)    //###############-
  -#################\\  / `' \  //#################-
 -###################\\/  ()  \//###################-
_#/|##########/\######(  (())  )######/\##########|\#_
|/ |#/\#/\#/\/  \#/\##|  \()/  |##/\#/  \/\#/\#/\#| \|
`  |/  V  V  `   V  )||  |()|  ||(  V   '  V /\  \|  '
   `   `  `      `  / |  |()|  | \  '      '<||>  '
                   (  |  |()|  |  )\        /|/
                  __\ |__|()|__| /__\______/|/
                 (vvv(vvvv)(vvvv)vvv)______|/
                 __                __             __
    __  ______  / /__  ____ ______/ /_  ___  ____/ /
   / / / / __ \/ / _ \/ __ `/ ___/ __ \/ _ \/ __  /
  / /_/ / / / / /  __/ /_/ (__  ) / / /  __/ /_/ /
  \__,_/_/ /_/_/\___/\__,_/____/_/ /_/\___/\__,_/
 

NAME

e - beastmode unleashed

SYNOPSIS

Add a trace marker:

perl -Me -e 'sub f1 { trace } sub f2 { f1 } f2'

Watch a reference for changes:

perl -Me -e 'my $v = {}; sub f1 { watch( $v ) } sub f2 { f1; $v->{a} = 1 } f2'

perl -Me -e '
    package A {
        use e;
        my %h = ( aaa => 111 );

        watch(\%h);

        sub f1 {
            $h{b} = 1;
        }

        sub f2 {
            f1();
            delete $h{aaa};
        }
    }

    A::f2();
'

Launch the Runtime::Debugger:

perl -Me -e 'repl'

Invoke the Tiny::Prof:

perl -Me -e 'prof'

Convert a data structure to json:

perl -Me -e 'say j { a => [ 1..3] }'

Convert a data structure to yaml:

perl -Me -e 'say yml { a => [ 1..3] }'

Pretty print a data structure:

perl -Me -e 'p { a => [ 1..3] }'

Data dump a data structure:

perl -Me -e 'd { a => [ 1..3] }'

Devel::Peek dump a data structure:

perl -Me -e 'dd { a => [ 1..3] }'

DESCRIPTION

This module imports many features that make one-liners and script debugging much faster.

It has been optimized for performance to not import all features right away: thereby making its startup cost quite low.

SUBROUTINES

monkey_patch

Insert subroutines into the symbol table.

Extracted from Mojo::Util for performance.

Perhaps can be updated based on the outcome of this issue: https://github.com/mojolicious/mojo/pull/2173

import

repl

Add a breakpoint to code.

Basically inserts a Read Evaluate Print Loop.

Enable to analyze code in the process.

trace

Show a stack trace.

trace( $depth=1 )

watch

Watch a reference for changes.

watch( $ref, $depth=3 )

prof

Profile the code from this point on.

my $obj = prof;
...
# $obj goes out of scope and builds results.

j

JSON Parser.

x

XML parser.

yml

YAML parser.

b

Work with strings.

c

Work with arrays.

f

Work with files.

say

Print with newline.

p

Pretty data printer.

np

Return pretty printer data.

d

Data dumper.

dd

Internal data dumper.

g

Perform a get request.

l

Work with URLs.

pod

Work with perl pod.

AUTHOR

Tim Potapov, <tim.potapov[AT]gmail.com>

BUGS

Please report any bugs or feature requests to https://github.com/poti1/e/issues.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc e

You can also look for information at:

https://metacpan.org/pod/e

https://github.com/poti1/e

LICENSE AND COPYRIGHT

This software is Copyright (c) 2024 by Tim Potapov.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)