X-Git-Url: http://git.shiar.nl/perl/plp/.git/blobdiff_plain/c8e35e0b2ab35f8af3d98fa0b69c41a73b62c714..3d9da133799284e18b7ee0e4a6b3754394c0f7dd:/PLP.pm?ds=inline
diff --git a/PLP.pm b/PLP.pm
index b97420e..a190e3b 100644
--- a/PLP.pm
+++ b/PLP.pm
@@ -1,8 +1,6 @@
-#--------------#
- package PLP;
-#--------------#
+package PLP;
-use v5.6;
+use 5.006;
use PLP::Functions ();
use PLP::Fields;
@@ -10,103 +8,96 @@ use PLP::Tie::Headers;
use PLP::Tie::Delay;
use PLP::Tie::Print;
+use File::Basename ();
+use File::Spec;
+#use Cwd ();
+
use strict;
-our $VERSION = '3.13';
+our $VERSION = '3.18';
-# subs in this package:
-# sendheaders Send headers
-# source($path, $level, $linespec) Read and parse .plp files
-# error($error, $type) Handle errors
+# Subs in this package:
# _default_error($plain, $html) Default error handler
-# clean Reset variables
# cgi_init Initialization for CGI
-# mod_perl_init($r) Initialization for mod_perl
-# start Start the initialized PLP script
+# clean Reset variables
+# error($error, $type) Handle errors
# everything Do everything: CGI
# handler($r) Do everything: mod_perl
+# mod_perl_init($r) Initialization for mod_perl
+# mod_perl_print Faster printing for mod_perl
+# sendheaders Send headers
+# source($path, $level, $linespec) Read and parse .plp files
+# start Start the initialized PLP script
+# The _init subs do the following:
+# Set $PLP::code to the initial code
+# Set $ENV{PLP_*} and makes PATH_INFO if needed
+# Change the CWD
-# Sends the headers waiting in %PLP::Script::header
-sub sendheaders () {
- our $sentheaders = 1;
- print STDOUT "Content-Type: text/plain\n\n" if $PLP::DEBUG & 2;
- print STDOUT map("$_: $PLP::Script::header{$_}\n", keys %PLP::Script::header), "\n";
-};
-
-# Given a filename and optional level (level should be 0 if the caller isn't
-# source() itself), and optional linespec (used by PLP::Functions::Include),
-# this function parses a PLP file and returns Perl code, ready to be eval'ed
-sub source {
- my ($path, $level, $linespec) = @_;
- $level = 0 if not defined $level;
- $linespec = '1' if not defined $linespec;
-
- our ($inA, $inB);
-
- (my $file = $path) =~ s[.*/][];
-
- my $source = $level
- ? qq/\cQ;\n#line 1 "$file"\nprint q\cQ/
- : qq/\n#line 1 "$file"\nprint q\cQ/;
- my $linenr = 0;
-
- local *SOURCE;
- open SOURCE, '<', $path or return $level
- ? qq{\cQ; die qq[Can't open "\Q$path\E" (\Q$!\E)]; print q\cQ}
- : qq{\n#line $linespec\ndie qq[Can't open "\Q$path\E" (\Q$!\E)];};
+# This gets referenced as the initial $PLP::ERROR
+sub _default_error {
+ my ($plain, $html) = @_;
+ print qq{
},
+ qq{Debug information: $html |
};
+}
+
+# CGI initializer: parses PATH_TRANSLATED
+sub cgi_init {
+
+ $PLP::print = 'print';
- LINE:
- while (defined (my $line =