methods of the JSPL::Controller perl class is represented by an instance of a
In perl a particular namespace can be used for different things. From simply to
collect a bunch of variables and subroutines, to implement a complete class, or
can act as a class "broker" when its static methods are constructors for other
The ways in which you can use
Stash instance into any property in your global object,
making it invisible and its use transparent. That whats happens when
The value returned by add in JSPL::Controller and
entering perl land are wrapped as
my $ctl = $ctx->get_controller; my $stash = $ctl->add('DBI'); # Expose to js the package 'DBI'.
my $old = $stash->allow_from_js($bool);
# Expose the namespace 'ForJSUse' my $stash = $ctl->add('ForJSuse'); # Make 'ForJSUse' modifiable by js code $stash->allow_from_js(1);
require 'DBI'; $ctl->add('DBI')->class_bind('DBI');
Exposes the perl package 'DBI' and binds it to the property of the same name as a class, allowing to call its methods as static ones.
require 'POSIX'; $ctl->add('POSIX')->package_bind('POSIX');
Matías Software Group, 2010