$message = "Error in object " . $object->print();
Most of the objects tend to have a pretty complicated internal structure and are printed on multiple lines. They look better when the components are appropriately indented. The default call prints as if the basic message is un-indented, and indents every extra level by 2 spaces.
This can be changed with extra arguments. The general format of print() is:
$object->print([indent, [subindent] ])
where indent is the initial indentation, and subindent is the additional indentation for every level. So the default print() is equivalent to print("", " ").
A special case is
$object->print(undef)
It prints the object in a single line, without line breaks.
The row types support the print() method. Here is an example of how a type would get printed:
$rt1 = Triceps::RowType->new( a => "uint8", b => "int32", c => "int64", d => "float64", e => "string", );
Then $rt1->print() produces:
row { uint8 a, int32 b, int64 c, float64 d, string e, }
With extra arguments $rt1->print("++", "--"):
row { ++--uint8 a, ++--int32 b, ++--int64 c, ++--float64 d, ++--string e, ++}
And finally with an undef argument $rt1->print(undef):
row { uint8 a, int32 b, int64 c, float64 d, string e, }
No comments:
Post a Comment