Initial release
[selfforum.git] / selfforum-cgi / shared / Template / _query.pm
1 # Template/_query.pm
2
3 # ====================================================
4 # Autor: n.d.p. / 2000-12-30
5 # lm : n.d.p. / 2001-02-04
6 # ====================================================
7 # Funktion:
8 # Erzeugen eines Querystrings
9 # ====================================================
10
11 use strict;
12
13 package Template::_query;
14
15 # ====================================================
16 # Funktionsexport
17 # ====================================================
18
19 use base qw(Exporter);
20 @Template::_query::EXPORT = qw(query_string);
21
22 ################################
23 # sub query_string
24 #
25 # Querystring erzeugen
26 ################################
27
28 sub query_string ($) {
29 my $parlist=shift;
30
31 my $string = '?'.join ('&',
32 map {(ref)?map{&url_encode ($_).'='.&url_encode ($parlist -> {$_})} @{$parlist -> {$_}}:
33 &url_encode ($_).'='.&url_encode ($parlist -> {$_})}
34 keys %$parlist);
35
36 # return
37 $string;
38 }
39
40 # ====================================================
41 # Private Funktionen
42 # ====================================================
43
44 ################################
45 # sub url_encode
46 #
47 # URL-Codierung
48 # (mehr oder weniger aus
49 # CGI.pm geklaut...)
50 ################################
51
52 sub url_encode ($) {
53 my $string = shift;
54 $string=~s/([^a-zA-Z\d_.-])/uc sprintf('%%%02x',ord($1))/eg;
55
56 $string;
57 }
58
59 # ====================================================
60 # Modulinitialisierung
61 # ====================================================
62
63 # making require happy
64 1;
65
66 # ====================================================
67 # end of Template::_query
68 # ====================================================

patrick-canterino.de