use JavaScript::Embedded; ## create new js context my $js = JavaScript::Embedded->new(); # set function to be used from javascript land $js->set('write' => sub { print $_[0], "\n"; }); $js->eval(qq{ (function(){ for (var i = 0; i < 100; i++){ write(i); } })(); });