NAME

Data::Format::Pretty::Console - Pretty-print data structure for console output

VERSION

version 0.01

SYNOPSIS

In your program:

use Data::Format::Pretty::Console qw(format_pretty);
...
@result = foo;
print format_pretty(\@foo);

Some example output:

Scalar, format_pretty("foo"):

foo

List, format_pretty([qw/foo bar baz qux/]):

.------.
| data |
+------+
| foo  |
| bar  |
| baz  |
| qux  |
'------'

Hash, format_pretty({foo=>"data", bar=>"format", baz=>"pretty", qux=>"console"}):

.---------------.
| key | value   |
+-----+---------+
| bar | format  |
| baz | pretty  |
| foo | data    |
| qux | console |
'-----+---------'

2-dimensional array, format_pretty([ [1, 2, ""], [28, "bar", 3], ["foo", 3, undef] ]):

.-----------------------------.
| column0 | column1 | column2 |
+---------+---------+---------+
|       1 |       2 |         |
|      28 | bar     |       3 |
| foo     |       3 |         |
'---------+---------+---------'

Some more complex data, format_pretty({summary => "Blah...", users => [{name=>"budi", domains=>["foo.com", "bar.com"], quota=>"1000"}, {name=>"arif", domains=>["baz.com"], quota=>"2000"}], verified => 0}):

summary:
Blah...

users:
.---------------------------------.
| domains          | name | quota |
+------------------+------+-------+
| foo.com, bar.com | budi |  1000 |
| baz.com          | arif |  2000 |
'------------------+------+-------'

verified:
0

Structures which can't be handled yet will simply be output as YAML, format_pretty({a {b=>1}}):

---
a:
  b: 1

DESCRIPTION

This module is meant to output data structure in a "pretty" or "nice" format, suitable for console programs. The idea of this module is that for you to just merrily dump data structure to the console, and this module will figure out how to best display your data to the end-user.

Currently this module tries to display the data as a nice ASCII table, and failing that, display it as YAML.

This module takes piping into consideration, and will output a simpler, more suitable format when your user pipes your program's output into some other program.

Most of the time, you don't have to configure anything. But in the future some formatting settings will be tweakable.

FUNCTIONS

format_pretty($data, %opts)

Return formatted data structure. Currently there is no options.

SEE ALSO

Modules used for formatting: Text::ASCIITable, YAML.

AUTHOR

Steven Haryanto <stevenharyanto@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by Steven Haryanto.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.