git.shiar.nl
/
perl
/
plp
/
.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
v3.06 release
[perl/plp/.git]
/
PLP
/
Functions.pm
diff --git
a/PLP/Functions.pm
b/PLP/Functions.pm
index 9d7b33c1c5d3a1a229e50dd1aa08e8d234dbb359..e07caa5846deaa696c96efe2902f26aca5f31108 100644
(file)
--- a/
PLP/Functions.pm
+++ b/
PLP/Functions.pm
@@
-4,20
+4,34
@@
use base 'Exporter';
use strict;
use base 'Exporter';
use strict;
-our @EXPORT = qw/HiddenFields Entity DecodeURI EncodeURI Entity include
- AddCookie ReadFile WriteFile AutoURL Counter Include/;
+our @EXPORT = qw/HiddenFields Entity DecodeURI EncodeURI Entity include
PLP_END
+ AddCookie ReadFile WriteFile AutoURL Counter Include
exit
/;
sub Include ($) {
sub Include ($) {
- my ($file) = $_[0];
+ no strict;
+ $PLP::file = $_[0];
$PLP::inA = 0;
$PLP::inB = 0;
$PLP::inA = 0;
$PLP::inB = 0;
- eval PLP::source($file, 0);
+ local $@;
+ eval 'package PLP::Script; ' . PLP::source($PLP::file, 0, join ' ', (caller)[2,1]);
+ if ($@) {
+ PLP::Functions::exit if $@ =~ /\cS\cT\cO\cP/;
+ PLP::error($@, 1);
+ }
}
sub include ($) {
goto &Include;
}
}
sub include ($) {
goto &Include;
}
+sub exit (;$) {
+ die "\cS\cT\cO\cP\n";
+}
+
+sub PLP_END (&) {
+ push @PLP::END, shift;
+}
+
sub HiddenFields ($@) {
my $hash = shift;
my %saves;
sub HiddenFields ($@) {
my $hash = shift;
my %saves;
@@
-119,8
+133,8
@@
sub WriteFile ($$) {
sub Counter ($) {
local *COUNTER;
local $/ = undef;
sub Counter ($) {
local *COUNTER;
local $/ = undef;
- open COUNTER,
"+<$_[0]"
or
- open COUNTER,
">$_[0]"
or return undef;
+ open COUNTER,
'+<', $_[0]
or
+ open COUNTER,
'>', $_[0]
or return undef;
flock COUNTER, 2;
seek COUNTER, 0, 0;
my $counter = <COUNTER>;
flock COUNTER, 2;
seek COUNTER, 0, 0;
my $counter = <COUNTER>;