in reply to Re^5: How to import "global" variables into sub-scripts from main script?
in thread How to import "global" variables into sub-scripts from main script?
The situation in mod_perl like environment is easy to demonstrate. But let's be more modern, it applies to plack as well, for example:
#!/usr/bin/perl use warnings; use strict; use Plack::Builder; our $global = 1; my $app = sub { my $env = shift; my $status = 200; my $headers = ['Content-type' => 'text/html']; return [$status, $headers, [$global++]] }; builder { mount '/' => $app; };
Now run it as (sorry for *nix shell, but that's what I run)
plackup -s Starman --workers 2 11130232.pl
Now run several requests in parallel, e.g.
for i in {1..100} ; do curl http://localhost:5000 & done
and check what the global state is several times:
$ curl [HTTP://localhost:5000] 55 $ curl [HTTP://localhost:5000] 47
Each worker keeps its own state, but you never know which one you'll hit.
|
|---|