use strict; use warnings; package Petal::CodePerl::Expr::PerlSprintf; use base qw( Code::Perl::Expr::Base ); use Class::MethodMaker ( get_set => [qw( -java Perl Params )] ); sub eval { my $self = shift; my @params = @{$self->getParams}; my $perl_f = $self->getPerl; my $perl = sprintf($perl_f, map {$_->perl} @params); return eval $perl; } sub perl { my $self = shift; my @params = @{$self->getParams}; my $perl_f = $self->getPerl; my $perl = sprintf($perl_f, map {"(".$_->perl.")"} @params); return $perl; } 1;