-# 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> #
+# #
+# Description: compose a query string #
+# #
+################################################################################
use strict;
+use vars qw(
+ @EXPORT
+);
-package Template::_query;
-
-use vars qw(@ISA @EXPORT);
-
-# ====================================================
-# Funktionsexport
-# ====================================================
+################################################################################
+#
+# Version check
+#
+# last modified:
+# $Date$ (GMT)
+# by $Author$
+#
+sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
-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 ('&',
- 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 ('&' =>
+ 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 ####################################################
\ No newline at end of file