X-Git-Url: http://git.shiar.net/perl/plp/.git/blobdiff_plain/b7a10718f1c1e5d0028cd367c337e9f85dc56618:/plpfunc.pm..0f5e78a789961923b45cae1a881c655fff9e7283:/PLP/Functions.pm?ds=inline
diff --git a/plpfunc.pm b/PLP/Functions.pm
similarity index 72%
rename from plpfunc.pm
rename to PLP/Functions.pm
index 6d78066..9d7b33c 100644
--- a/plpfunc.pm
+++ b/PLP/Functions.pm
@@ -1,32 +1,43 @@
-#!/usr/bin/perl
-# The shebang is only there for mcedit syntax highlights, as I'm too lazy to
-# change the configfile. It won't hurt performance
+#-------------------------#
+ package PLP::Functions;
+#-------------------------#
+use base 'Exporter';
+use strict;
-#use URI::Escape;
+our @EXPORT = qw/HiddenFields Entity DecodeURI EncodeURI Entity include
+ AddCookie ReadFile WriteFile AutoURL Counter Include/;
-use strict;
-use vars qw(%header);
+sub Include ($) {
+ my ($file) = $_[0];
+ $PLP::inA = 0;
+ $PLP::inB = 0;
+ eval PLP::source($file, 0);
+}
+
+sub include ($) {
+ goto &Include;
+}
-sub HiddenFields($@){
+sub HiddenFields ($@) {
my $hash = shift;
my %saves;
@saves{@_} = ();
- for (keys %$hash){
+ for (keys %$hash) {
print qq{}
unless exists $saves{$_};
}
}
-sub Entity(@){
+sub Entity (@) {
my $ref;
my @copy;
- if (defined wantarray){
+ if (defined wantarray) {
@copy = @_;
$ref = \@copy;
- }else{
+ } else {
$ref = \@_;
}
- for (@$ref){
+ for (@$ref) {
eval {
s/&/&/g;
s/\"/"/g;
@@ -43,36 +54,36 @@ sub Entity(@){
# Browsers do s/ /+/ - I don't care about RFC's, but I do care about real-life
# situations.
-sub DecodeURI(@){
+sub DecodeURI (@) {
my @r;
local $_;
- for (@_){
+ for (@_) {
s/\+/%20/g;
my $dec = $_;
$dec =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/chr hex $1/ge;
- if (defined wantarray){
+ if (defined wantarray) {
push @r, $dec;
- }else{
+ } else {
eval {$_ = $dec};
# return undef if $@; # ;DecodeURI("foo");
}
}
return defined wantarray ? (wantarray ? @r : "@r") : undef;
}
-sub EncodeURI(@){
+sub EncodeURI (@) {
my @r;
local $_;
- for (@_){
+ for (@_) {
my $esc = $_;
$esc =~
s{
- ([^;\/?:@&=\$,A-Za-z0-9\-_.!~*\'()])
+ ([^\/?:@\$,A-Za-z0-9\-_.!~*\'()])
}{
sprintf("%%%02x", ord($1))
}xge;
- if (defined wantarray){
+ if (defined wantarray) {
push @r, $esc;
- }else{
+ } else {
eval {$_ = $esc};
# return undef if $@; # ;EncodeURI("foo");
}
@@ -80,32 +91,32 @@ sub EncodeURI(@){
return defined wantarray ? (wantarray ? @r : "@r") : undef;
}
-sub AddCookie($){
- if ($header{'Set-Cookie'}){
- $header{'Set-Cookie'} .= "\nSet-Cookie: $_[0]";
- }else{
- $header{'Set-Cookie'} = $_[0];
+sub AddCookie ($) {
+ if ($PLP::Script::header{'Set-Cookie'}) {
+ $PLP::Script::header{'Set-Cookie'} .= "\nSet-Cookie: $_[0]";
+ } else {
+ $PLP::Script::header{'Set-Cookie'} = $_[0];
}
}
-sub ReadFile($){
+sub ReadFile ($) {
local *READFILE;
local $/ = undef;
- open (READFILE, "<$_[0]");
+ open (READFILE, '<', $_[0]);
my $r = ;
close READFILE;
return $r;
}
-sub WriteFile($$){
+sub WriteFile ($$) {
local *WRITEFILE;
- open (WRITEFILE, ">$_[0]");
+ open (WRITEFILE, '>', $_[0]);
flock WRITEFILE, 2;
print WRITEFILE $_[1];
close WRITEFILE;
}
-sub Counter($){
+sub Counter ($) {
local *COUNTER;
local $/ = undef;
open COUNTER, "+<$_[0]" or
@@ -120,7 +131,7 @@ sub Counter($){
return $counter;
}
-sub AutoURL($){
+sub AutoURL ($) {
# This sub assumes your string does not match /(["<>])\cC\1/
my $ref;
if (defined wantarray){
@@ -151,4 +162,6 @@ sub AutoURL($){
if ($@){ return defined wantarray ? @_ : undef }
return defined wantarray ? $$ref : undef;
}
+
+
1;