NAME

Data::JavaScript - Perl extension for dumping structures into JavaScript code

SYNOPSIS

use Data::JavaScript;
B<or>
use Data::JavaScript {UNDEF=>0};

@code = jsdump('my_array', $array_ref, 0);
$code = jsdump('my_object', $hash_ref);
$code = hjsdump('my_stuff', $array_ref B<or> $hash_ref);

DESCRIPTION

This module is aimed mainly for CGI programming, when a perl script generates a page with client side JavaScript code that needs access to structures created on the server.

It works by creating one line of JavaScript code per datum. Therefore, structures cannot be created anonymously and needed to be assigned to variables. This enables dumping big structures.

You may define a default to be substitued in dumping of undef values at compile time by supplying the default value in anonymous hash like so

use Data::JavaScript {UNDEF=>'null'};
jsdump('name', \$reference, [$undef]);

The first argument is required, the name of JavaScript object to create.

The second argument is required, a hashref or arrayref. Structures can be nested, circular referrencing is supported EXPERIMENTALLY only.

The third argument is optional, a scalar whose value is to be used when dumping a structure. If unspecified undef is output as ''. Other useful values might be 0, q(null); and q(NaN);

When called in array context, the functions return an array of code lines. When called in scalar context, it returns one chunk of lines delimited by line fields.

hjsdump('name', \$reference, [$undef]);

hjsdump is identical jsdump except that it add HTML tags to embed the script inside an HTML page.

AUTHOR

Maintained by Jerrad Pierce<jpierce@cpan.org>

Ariel Brosh, schop@cpan.org. Inspired by WDDX.pm JavaScript support.

CREDITS

Garick Hamlin ghamlin@typhoon.lightning.net, fixing of quoting bug.

SEE ALSO

perl(1), WDDX.