The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

JavaScript::V8 - Perl interface to the V8 JavaScript engine

SYNOPSIS

  use JavaScript::V8;

  my $context = JavaScript::V8::Context->new();

  $context->bind_function(write => sub { print @_ });

  $context->eval(q/
    for (i = 99; i > 0; i--) {
        write(i + " bottle(s) of beer on the wall, " + i + " bottle(s) of beer\n");
        write("Take 1 down, pass it around, ");
        if (i > 1) {
            write((i - 1) + " bottle(s) of beer on the wall.");
        }
        else {
            write("No more bottles of beer on the wall!");
        }
    }
  /);

INSTALLING V8

From Source

See V8 issue 413 if you are having trouble on gcc 4.4.1.

    svn checkout http://v8.googlecode.com/svn/trunk/ v8
    cd v8
    scons library=shared
    sudo mv include/v8.h /usr/local/include/
    sudo mv libv8.so /usr/local/lib/

If you're using a 64-bit architecture, you need to include arch=x64 when running scons:

    scons library=shared arch=x64

Otherwise, perl will complain when trying to link/load v8. For more information, see V8 issue 330.

On OS X

On OS X I've successfully used Homebrew, install Homebrew then:

  brew install v8

Binary

Linux

On Ubuntu 10.04 (and possibly Debian), the library and header files can be installed by running:

    sudo aptitude install libv8-2.0.3 libv8-dev

Similar packages may be available for other distributions (adjust the package names accordingly).

SEE ALSO

Further documentation

Extension modules

Other JavaScript bindings for Perl

REPOSITORY

The source code lives at http://github.com/dgl/javascript-v8.

AUTHORS

  Pawel Murias <pawelmurias at gmail dot com>
  David Leadbeater <dgl@dgl.cx>
  Paul Driver <frodwith at gmail dot com>
  Igor Zaytsev <igor.zaytsev@gmail.com>

COPYRIGHT AND LICENSE

  Copyright (c) 2009-2010 Paweł Murias
  Copyright (c) 2011 David Leadbeater
  Copyright (c) 2011 Igor Zaytsev

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

ACKNOWLEDGMENTS

Claes Jakobsson <claesjac at cpan dot org>

I stole and adapted pieces of docs and API design from JavaScript.pm

Brian Hammond <brain @ fictorial dot com>

For salvaging the code of V8.pm from a message board (which I took some code and the idea from)

The hacker who wrote V8.pm and posted it on the message board

(http://d.hatena.ne.jp/dayflower/20080905/1220592409)

All the fine people at #perl@freenode.org for helping me write this module