v_melnik has asked for the wisdom of the Perl Monks concerning the following question:

Dear monks,

I saw a cool trick that XML::LibXML, Throwable and some other libraries can do: when you try to get the value of the variable containing a reference to the object, you get the result of calling one of its' methods (for example as_string() instead of "SomeClass=HASH(0xdeadbeef)".

How to do that?

Thank you!

UPD: Thank you for replies, the "overload" pragma is exactly what I need!


Replies are listed 'Best First'.
Re: "Default" method
by McA (Priest) on Oct 08, 2014 at 12:17 UTC


    you can do that with overloading the stringification operator in your class.

    use overload ( '""' => sub { shift->to_string; }, );

    where to_string is the method returning a string representation.


Re: "Default" method
by Anonymous Monk on Oct 08, 2014 at 12:18 UTC