I read the email. You're recommended to use frameworks such as Mojolicious or Dancer 2.
Plack/PSGI is not a layer you should consider using when you're at a starter level. On Tue, Aug 16, 2016 at 3:27 PM ivo welch <ivo...@gmail.com> wrote: > > thanks for this good starter. I cpan'ed Plack PSGI Plack::Session, > Plack::Middleware::ETag, and Template . I commented out the loadconfig(). > then it compiled. started > > $ sudo plackup plack.pl ## needed or sessions and templates > directories need to be writeable by nobody > > I fire the browser up to localhost:5000, and I get impressive looking > error output, that seems to be a mix of amateur and pro. Specifically, I > see > > Undefined subroutine > &Plack::Sandbox::_2fUsers_2fme_2testsite_2fwww_2fplack_2epl::doIndex called > at /Users/me/testsite/www/plack.pl line 44. > at /Users/ivo/syllabus.space/www/phpi/plack.pl line 43 > > > and then nice code boxes. I guess _2F needs to be decoded to '/', but > this is minor. I am now feeling my way in the dusk (no longer dark). > > ETag were a mystery, too. what do inode mtime size do? I am guessing > that it is doing exactly what I want---cache expiry if inode, mtime, or > file size change. much more convenient than the old expiries and pragma > that I dealt with. > > I also discovered common::sense through your example. much more convenient > than what I had been using, which was enumerating these cases! > > > The error was, at first, mystery. I see the mount that presumably builds > up "/", and since I am requesting localhost:5000 in my browser, this is > what should be hit. alas, I started to get somewhere when I defined > > sub doIndex { > return [ '200', [ 'Content-Type' => 'text/html' ], [ 42 ], ]; > } > > > > and then requested localhost:5000/main . I guess I can now replace the > %funcs call `my proc = $funcs{$args[1]}` with something like > > > args[0] =~ s/\.//g; ## ignore all attempts to traverse up the hierarchy > or use hidden files (-e "/$DOCUMENTROOT$args[0]") or return [ 404, [ > 'Content-Type' => 'text/html; charset=utf-8' ], [ "404 file $args[0] not > found" ] ]; > my $perlcode= slurp("/$DOCUMENTROOT/$args[0]"); ## could check that the > first line contains perl magic > my @rv = eval perlcode; > ($@) and die "in nice html, say your perlcode in $args[0] died"; > ($#rv != 2) and die "in nice html, say we want three args back from > $args[0]"; > return @rv; > > > > known-to-work starter examples (each showing off a different feature) would > be a great help on the Plack http://plackperl.org/ website. alas, I don't > know tatsuhikos' email (who I am assuming maintains it). > > > thanks again, andy. > > > regards, > > > /iaw > > > -- > > --- > You received this message because you are subscribed to the Google Groups > "psgi-plack" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to psgi-plack+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- --- You received this message because you are subscribed to the Google Groups "psgi-plack" group. To unsubscribe from this group and stop receiving emails from it, send an email to psgi-plack+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.