NAME
Data::Dumper::LispLike - Dump perl data structures formatted as Lisp-like S-expressions
VERSION
version 0.003
SYNOPSIS
use Data::Dumper::LispLike;
print dumplisp [ 1, 2, [3, 4] ]; # prints "(1 2 (3 4))\n";
ATTRIBUTES
$Data::Dumper::LispLike::indent
Indentation string. Default is " " (four spaces).
$Data::Dumper::LispLike::maxsimplewidth
Maximum width of s-expression that is considered "simple", i.e. that fits into one line and does not need to be split into many lines. Default is 60.
FUNCTIONS
dumplisp()
my $listref = ...;
print dumplisp $listref;
This function converts an ARRAYREF
, which may contain strings or other ARRAYREF
s, into Lisp-like S-expressions. The output is much compacter and easier to read than the output of Data::Dumper
.
EXAMPLE
Here is a bigger real-life example of dumplisp() output:
(COMMA
(AND
(CMDDEF -writeln (%str) (BLOCK (CMDRUN -write '%str\n')))
(CMDDEF -writeln1 (%STR) (BLOCK (CMDRUN -write1 '%STR\n')))
(CMDDEF
-warn
(%WARN_MESSAGE)
(BLOCK (CMDRUN -warnf '%WARN_MESSAGE\n')))
(CMDDEF -abort () (BLOCK (CMDRUN -exit 1)))
(CMDDEF
-die
(%DIE_MESSAGE)
(BLOCK (COMMA (CMDRUN -warn %DIE_MESSAGE) (CMDRUN -abort))))
(IF
(OPTION
(COMPARE != %UNAME/SYSNAME Linux)
(CMDRUN -die 'pfind is only for linux')))
(CMDDEF -kill () (BLOCK (CMDRUN -signal KILL)))
(CMDDEF -term () (BLOCK (CMDRUN -signal TERM)))
(CMDDEF -hup () (BLOCK (CMDRUN -signal HUP)))
(CMDDEF -ps () (BLOCK (CMDRUN -exec ps uf '{}')))
(CMDDEF
pso
(%PS_FIELDS)
(BLOCK (CMDRUN -exec ps '\q-o' %PS_FIELDS '{}')))
(CMDDEF -exe (%exe_arg) (BLOCK (COMPARE == %exe %exe_arg)))
(CMDDEF -cwd (%cwd_arg) (BLOCK (COMPARE == %cwd %cwd_arg)))
(ASSIGN %vsz %statm/size)
(ASSIGN %rss %statm/resident)
(CMDDEF -kthread () (BLOCK (COMPARE == 0 %rss)))
(CMDDEF -userspace () (BLOCK (NOT (CMDRUN -kthread))))
(ASSIGN %ppid %stat/ppid)
(ASSIGN %comm %stat/comm)
(ASSIGN %nice %stat/nice)
(ASSIGN
%nice_flag
(CONDITIONAL
(OPTION (COMPARE -lt %nice 0) '<')
(OPTION (COMPARE -gt %nice 0) N)
(DEFAULT '')))
(ASSIGN %s %stat/state)
(ASSIGN %state %s%nice_flag)
(ASSIGN %name %status/Name)
(CMDDEF
-grep
(%GREP_ARG)
(BLOCK
(OR
(COMPARE -m %exe '*%GREP_ARG*')
(COMPARE -m %comm '*%GREP_ARG*')
(COMPARE -m %name '*%GREP_ARG*'))))
(CMDDEF
-egrep
(%EGREP_ARG)
(BLOCK
(OR
(COMPARE '=~' %exe %EGREP_ARG)
(COMPARE '=~' %comm %EGREP_ARG)
(COMPARE '=~' %name %EGREP_ARG))))
(ASSIGN %command %tree%name)
(CMDDEF
-pstree
()
(BLOCK
(AND
(CMDRUN -settree)
(CMDRUN -echo %ppid %pid %state %command)))))
(AND
(BLOCK (OR (CMDRUN -userspace) (COMPARE == %pid 23)))
(CMDRUN -head 10)
(CMDRUN -echo %pid %ppid %stat/ppid)
(CMDRUN -ps)))
SUPPORT
http://github.com/spiculator/data-dumper-lisplike
AUTHOR
Sergey Redin <sergey@redin.info>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Sergey Redin.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.