NAME Perl6::Perl - $obj->perl just like $obj.perl in Perl 6 SYNOPSIS # As UNIVERSAL method use Perl6::Perl; use Foo::Bar; my $baz = Foo::Bar->new(); my $bazz = eval( $baz->perl ); # $bazz is a copy of $baz # As subroutine so you can apply to non-objects use Perl6::Perl qw/perl/; # explicitly import perl $scalar; perl \@array; perl \%hash; perl \*GLOB; perl sub{ $_[0] + 1 }; # Ruby's p p $complex_object; DESCRIPTION In Perl 6, everything is an object and every object comes with the ".perl" method that returns the "eval()"uable representation thereof. This module does just that. Since Perl 5 is already shipped with Data::Dumper, this module makes use of it; In fact "$obj->perl" is just a wrapper to "Dumper($obj)" with options slightly different from Data::Dumper's default. p as in Ruby. This module also comes with "p", which is analogous to that of ruby; It is simply " sub p{ print perl(@_), "\n" }". But you save a lot of key strokes -- even more concise than " say @_.perl ". Though p is not Perl6's spec, I couldn't resist adding this to this module because so many people envy Ruby for it :). Data::Dumper options Perl6::Perl uses the following values as default: Deparse 1 so you can serialize coderef. Terse 1 so no "$VAR1 = " appears. Useqq 1 so you can safely inspect binary data as well as Unicode characters. Indent 2 if the object is a coderef, 0 otherwise. You can override these by feeding Data::Dumper options as follows; $obj->perl(purity => 1); # if the object contains circular reference. Note you can use all lowercaps here. EXPORT None by default. "perl" and "p" are exported on demand. SEE ALSO Data::Dumper, AUTHOR Dan Kogai, COPYRIGHT AND LICENSE Copyright (C) 2006 by Dan Kogai This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.