]> git.p6c8.net - selfforum.git/blobdiff - selfforum-cgi/shared/Template/_query.pm
version checks added, fixed comments
[selfforum.git] / selfforum-cgi / shared / Template / _query.pm
index 606f4f34107e77297c679294b8db2b58d49d29f8..8d1d8ecdb093bc04c126b82806dc7c33b87e53e5 100644 (file)
@@ -1,71 +1,76 @@
-# Template/_query.pm
+package Template::_query;
 
-# ====================================================
-# Autor: n.d.p. / 2000-12-30
-# lm   : n.d.p. / 2001-02-04
-# ====================================================
-# Funktion:
-#      Erzeugen eines Querystrings
-# ====================================================
+################################################################################
+#                                                                              #
+# File:        shared/Template/_query.pm                                       #
+#                                                                              #
+# Authors:     AndrĂ© Malo <nd@o3media.de>, 2001-06-16                          #
+#                                                                              #
+# Description: compose a query string                                          #
+#                                                                              #
+################################################################################
 
 use strict;
+use vars qw(
+  @EXPORT
+  $VERSION
+);
 
-package Template::_query;
-
-use vars qw(@ISA @EXPORT);
-
-# ====================================================
-# Funktionsexport
-# ====================================================
+################################################################################
+#
+# Version check
+#
+$VERSION = do { my @r =(q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
 
-require Exporter;
-@ISA    = qw(Exporter);
+################################################################################
+#
+# Export
+#
+use base qw(Exporter);
 @EXPORT = qw(query_string);
 
-################################
-# sub query_string
+### url_encode () ##############################################################
 #
-# Querystring erzeugen
-################################
-
-sub query_string ($) {
-  my $parlist=shift;
-
-  my $string = '?'.join ('&amp;',
-                         map {(ref)?map{&url_encode ($_).'='.&url_encode ($parlist -> {$_})} @{$parlist -> {$_}}:
-                                    &url_encode ($_).'='.&url_encode ($parlist -> {$_})}
-                           keys %$parlist);
+# urlsafe encoding
+# (more or less from CGI.pm)
+#
+# Params: $string - string to encode
+#
+# Return: encoded string
+#
+sub url_encode ($) {
+  my $string = shift;
+  $string=~s/([^a-zA-Z\d_.-])/uc sprintf('%%%02x',ord($1))/eg;
 
-  # return
   $string;
 }
 
-# ====================================================
-# Private Funktionen
-# ====================================================
-
-################################
-# sub url_encode
+### query_string () ############################################################
 #
-# URL-Codierung
-# (mehr oder weniger aus
-#  CGI.pm geklaut...)
-################################
+# compose a query string
+#
+# Params: $parlist - hashref
+#
+# Return: scalar: query string
+#
+sub query_string ($) {
+  my $parlist=shift;
 
-sub url_encode ($) {
-  my $string = shift;
-  $string=~s/([^a-zA-Z\d_.-])/uc sprintf('%%%02x',ord($1))/eg;
+  my $string = '?'.join ('&amp;' =>
+    map {
+      (ref)
+      ? map{url_encode ($_).'='.url_encode ($parlist -> {$_})} @{$parlist -> {$_}}
+      : url_encode ($_).'='.url_encode ($parlist -> {$_})
+    } keys %$parlist
+  );
 
+  # return
   $string;
 }
 
-# ====================================================
-# Modulinitialisierung
-# ====================================================
-
-# making require happy
+# keep 'require' happy
 1;
 
-# ====================================================
-# end of Template::_query
-# ====================================================
\ No newline at end of file
+#
+#
+### end of Template::_query ####################################################

patrick-canterino.de