NAME
Devel::MAT::Cmd
- abstractions for providing commands for Devel::MAT
METHODS
printf
Devel::MAT::Cmd->printf( $fmt, @args )
Behaves like perl's core printf()
function. Additionally, any argument for a %s
conversion may also be the result of one of the following format_*
methods, which may return a String::Tagged instance.
print_table
Devel::MAT::Cmd->print_table( $rows, %opts )
Given a 2D array-of-arrays containing strings (which may be plain or formatted ones returned by the various format_*
methods), prints them formatted in a table shape, aligning the columns.
The following named %ops
may be supplied:
- sep => STRING
-
Separator string to print between columns. Will default to a single space if not supplied. Note that this string is interpolated into a
sprintf
format string, so any%
marks it may contain should be doubled. - align => ARRAY[STRING] or STRING
-
A list of strings per column (or one single string to apply equally to them all) specifying the alignment of data in the column. Aligns to the right if the value is
"right"
.
format_note
$str = Devel::MAT::Cmd->format_note( $str, $idx )
Apply some sort of styling to the a given string.
Starting from zero, successively higher integer values for $idx
may influence the style further. Output with the same index value will appear the same. The implementation should support at least 3 different styles, but may wrap after this.
For stylistic consistency, tools should try to stick to the following conventions for note indexes:
0 - regular notes
1 - secondary notes, lexical variable names
2 - unusual or erroneous conditions, symbol table names
format_sv
$str = Devel::MAT::Cmd->format_sv( $sv )
Returns a string encoding the address and description of the given SV, possibly stylised in some way, subject to user customisation, or possibly made interactive if the UI allows it to be so.
format_value
$str = Devel::MAT::Cmd->format_value( $val, %opts )
Returns a string formatting a given plain scalar value (which should either be a string or a number) to indicate it's a value from the user program. If given a string value, this will be escaped and quoted appropriately.
The following named %opts
may be supplied:
- key => BOOL
-
If true, the value represents a hash key value. Wraps the result in braces
{...}
and removes redundant quote marks if the string is valid as a bareword identifier. - index => BOOL
-
If true, the value represents an array index. Wraps the result in square brackets
[...]
and expects the value to be an integer. - pv => BOOL
-
If true, the value represents a string from the user code. Wraps the result in quote marks
"..."
and limits the length to a maximum of 64 characters (or as specified by themaxlen
argument).
format_symbol
$str = Devel::MAT::Cmd->format_symbol( $name, $sv )
Returns a string formatting the given symbol name to indicate that it is a symbol name. Optionally, the SV object itself can be passed too, which may save the UI having to look it up from the dumpfile in case it wishes to make the printed value interactive in some way.
format_bytes
$str = Devel::MAT::Cmd->format_bytes( $bytes )
Returns a string showing the given byte count in suitably scaled units. This will use base-1024 sizes in KiB
, MiB
, GiB
or TiB
if necessary.
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>