Acme-Chef
view release on metacpan or search on metacpan
lib/Acme/Chef.pm view on Meta::CPAN
# Using the script that comes with the distribution.
chef.pl file.chef
# Using the module
use Acme::Chef;
my $compiled = Acme::Chef->compile($code_string);
print $compiled->execute();
my $string = $compiled->dump(); # requires Data::Dumper
# Save it to disk, send it over the web, whatever.
my $reconstructed_object = eval $string;
# or:
$string = $compiled->dump('autorun'); # requires Data::Dumper
# Save it to disk, send it over the web, whatever.
my $output_of_chef_program = eval $string;
=head1 DESCRIPTION
Chef is an esoteric programming language in which programs look like
recipes. I needn't mention that using it in
production environment, heck, using it for anything but entertainment
ought to result in bugs and chaos in reverse order.
lib/Acme/Chef.pm view on Meta::CPAN
object.
=cut
sub dump {
my $self = shift;
my $type = shift;
$type = '' if not defined $type;
local $@ = undef;
require Data::Dumper;
my $dumper = Data::Dumper->new([$self], ['self']);
$dumper->Indent(0);
$dumper->Purity(1);
my $dump = $dumper->Dump();
if ($type =~ /^autorun$/) {
$dump = 'do{my ' . $dump . ' bless $self => "' . (__PACKAGE__) . '"; $self->execute();} ';
} else {
$dump = 'do{my ' . $dump . ' bless $self => "' . (__PACKAGE__) . '";} ';
}
( run in 0.227 second using v1.01-cache-2.11-cpan-4d50c553e7e )