Hallo Cheatah,
use CGI;
print header, CGI::escape('test 4576 + $%&%&/!""&;$%&%/&/(');
Vielen Dank für die korrekte Syntax :-). Kurz nach Dir hab` ich unten in Unwissenheit glatt eine falsche gepostet :-( *schäm*.
Warum es mit CGI::Enurl nicht geht weiß ich nicht, das Modul kenne ich nicht. Was sagt denn perldoc CGI::Enurl?
Hier ein Auszug. Demnach sollte die Syntax die Alex verwendet richtig sein, sofern ich nichts übersehen habe.
==============================
This is a little module made for CGI scripting. It encodes the parameters
to be passed to a CGI. It does nothing more, so it's much smaller and loads
more quickly.
Functions
enurl STRING
enurl ARRAY
enurl HASH
Encodes the parameter. If the parameter is a single string
it encodes it and returns the encoded form.
If it is an array or a reference to an array it encodes all
items and returns them joined by '&'.
If it is a hash it encodes the values and return a querystring in form
"key2=encoded_value1&key2=encoded_value2&...".
!!! Please note that a hash in a list context returns a list of all
keys and values. This means that if you call enurl(%hash) you will NOT
get what you may thing you should. You HAVE to use enurl(%hash) !!!
enURL STRING
Encodes the parameter, this version doesn't encode '=' and '&' characters,
so you should make sure they are not present in the data.
Notice the difference :
enurl 'a&b=f o o' => 'a%26b%3Df+o+o'
enURL 'a&b=f o o' => 'a&b=f+o+o'
Wie unten schon erwähnt ist die Funktion enurl_str() aus CGI.pm übernommen.
Gruß AlexBausW