]> git.p6c8.net - selfforum.git/blob - selfforum-cgi/shared/Template/_query.pm
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 use vars qw(@ISA @EXPORT);
16
17 # ====================================================
18 # Funktionsexport
19 # ====================================================
20
21 require Exporter;
22 @ISA = qw(Exporter);
23 @EXPORT = qw(query_string);
24
25 ################################
26 # sub query_string
27 #
28 # Querystring erzeugen
29 ################################
30
31 sub query_string ($) {
32 my $parlist=shift;
33
34 my $string = '?'.join ('&',
35 map {(ref)?map{&url_encode ($_).'='.&url_encode ($parlist -> {$_})} @{$parlist -> {$_}}:
36 &url_encode ($_).'='.&url_encode ($parlist -> {$_})}
37 keys %$parlist);
38
39 # return
40 $string;
41 }
42
43 # ====================================================
44 # Private Funktionen
45 # ====================================================
46
47 ################################
48 # sub url_encode
49 #
50 # URL-Codierung
51 # (mehr oder weniger aus
52 # CGI.pm geklaut...)
53 ################################
54
55 sub url_encode ($) {
56 my $string = shift;
57 $string=~s/([^a-zA-Z\d_.-])/uc sprintf('%%%02x',ord($1))/eg;
58
59 $string;
60 }
61
62 # ====================================================
63 # Modulinitialisierung
64 # ====================================================
65
66 # making require happy
67 1;
68
69 # ====================================================
70 # end of Template::_query
71 # ====================================================

patrick-canterino.de