X-Git-Url: http://git.shiar.net/perl/plp/.git/blobdiff_plain/c8e35e0b2ab35f8af3d98fa0b69c41a73b62c714..d9bcafc409ceedb4872863ffc0a7e92cdd2079da:/PLP/Functions.pm diff --git a/PLP/Functions.pm b/PLP/Functions.pm index 1b233c4..ef5b311 100644 --- a/PLP/Functions.pm +++ b/PLP/Functions.pm @@ -1,6 +1,5 @@ -#-------------------------# - package PLP::Functions; -#-------------------------# +package PLP::Functions; + use base 'Exporter'; use Fcntl qw(:flock); use strict; @@ -16,7 +15,7 @@ sub Include ($) { local $@; eval 'package PLP::Script; ' . PLP::source($PLP::file, 0, join ' ', (caller)[2,1]); if ($@) { - PLP::Functions::exit if $@ =~ /\cS\cT\cO\cP/; + PLP::Functions::exit() if $@ =~ /\cS\cT\cO\cP/; PLP::error($@, 1); } } @@ -67,9 +66,9 @@ sub Entity (@) { return defined wantarray ? (wantarray ? @$ref : "@$ref") : undef; } -# Browsers do s/ /+/ - I don't care about RFC's, but I do care about real-life -# situations. sub DecodeURI (@) { + # Browsers do s/ /+/ - I don't care about RFC's, but I do care about real-life + # situations. my @r; local $_; for (@_) { @@ -85,6 +84,7 @@ sub DecodeURI (@) { } return defined wantarray ? (wantarray ? @r : "@r") : undef; } + sub EncodeURI (@) { my @r; local $_; @@ -253,17 +253,26 @@ In void context, B the values of the given variables. In other contexts <: print Entity($user_input); :> +Be warned that this function also HTMLizes consecutive whitespace and newlines (using   and
respectively). +For simple escaping, use L. To escape high-bit characters as well, use L. + =item EncodeURI LIST -Replaces characters by their %-encoded values. +Encodes URI strings according to RFC 3986. All disallowed characters are replaced by their %-encoded values. In void context, B the values of the given variables. In other contexts, returns the changed versions. Link +Note that the following reserved characters are I percent-encoded, even though they may have a special meaning in URIs: + + / ? : @ $ + +This should be safe for escaping query values (as in the example above), but it may be a better idea to use L instead. + =item DecodeURI LIST -Decodes %-encoded strings. +Decodes %-encoded strings. Unlike L, it also translates + characters to spaces (as browsers use those). In void context, B the values of the given variables. In other contexts, returns the changed versions. @@ -297,7 +306,9 @@ Adds a Set-Cookie header. STRING must be a valid Set-Cookie header value. =head1 AUTHOR -Juerd Waalboer +Juerd Waalboer + +Current maintainer: Mischa POSLAWSKY =cut