<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># Template/_query.pm

# ====================================================
# Autor: n.d.p. / 2000-12-30
# lm   : n.d.p. / 2001-02-04
# ====================================================
# Funktion:
#      Erzeugen eines Querystrings
# ====================================================

use strict;

package Template::_query;

use vars qw(@ISA @EXPORT);

# ====================================================
# Funktionsexport
# ====================================================

require Exporter;
@ISA    = qw(Exporter);
@EXPORT = qw(query_string);

################################
# sub query_string
#
# Querystring erzeugen
################################

sub query_string ($) {
  my $parlist=shift;

  my $string = '?'.join ('&amp;amp;',
                         map {(ref)?map{&amp;url_encode ($_).'='.&amp;url_encode ($parlist -&gt; {$_})} @{$parlist -&gt; {$_}}:
                                    &amp;url_encode ($_).'='.&amp;url_encode ($parlist -&gt; {$_})}
                           keys %$parlist);

  # return
  $string;
}

# ====================================================
# Private Funktionen
# ====================================================

################################
# sub url_encode
#
# URL-Codierung
# (mehr oder weniger aus
#  CGI.pm geklaut...)
################################

sub url_encode ($) {
  my $string = shift;
  $string=~s/([^a-zA-Z\d_.-])/uc sprintf('%%%02x',ord($1))/eg;

  $string;
}

# ====================================================
# Modulinitialisierung
# ====================================================

# making require happy
1;

# ====================================================
# end of Template::_query
# ====================================================</pre></body></html>