Thread Mein bisher kürzestes CGI-Script (27 answers)
Opened by rosti at 2011-08-11 19:25

sitescriptor
 2011-08-12 02:01
#151530 #151530
User since
2009-08-09
105 Artikel
BenutzerIn
[default_avatar]
Hallo, Rosti, bin immer gespannt auf andere Strukturen, auch wenn sie sehr minimal sind!
Zur Anregung hier ein unvollständiges Beispiel meiner Kontrollstrukturen. Der Pagedispatcher bestimmt aus der Url ein Pagefile und den passenden Pageparser (hier HTML):
Code: (dl )
1
2
3
<h3><!--EVENT::pegel:get_pegel -->
<span class="pegel-pegel">Pegel: __pegel.pegel__ </span><span class="pegel-datum">Zeit: __pegel.datum__ __pegel.zeit__ </span>
<!--/--></h3>

Löst den Event "aktuelle_site:pegel:get_pegel" aus.

In der Klasse 'Pegel' abgeleitet von 'Modulclass':
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my %HandlerHash =
(
"get_pegel" =>
{
'handler' => sub { $Self->getPegel_handler( @_ ); },
'mods' => { 'url' => 'http://www.steb-koeln.de/hochwasser.html',
'uaname' => 'EP-Bot www.ebertplatz.de',
'regex' => qr{\<div\s+?class="pegelbox"\>\s*?\<h3\>.+?\<\/h3\>\s*?\<h4\>(.+?)\<\/h4\>\s*?\<p\>\s*?\<span\>am:(.+?)\<\/span\>\s*?\<span\>um:(.+?)\<\/span\>},
},
},
);
# Mische mit dem vererbten Hash
$Self->mergeHandler( \%HandlerHash, $Self->{'HandlerHash'} );
# registriere das Objekt als Eventhandler
$SC::EVENTS->registerHandler( $Self->{'NICKsite'}, $Self->{'NICKinstance'}, $Self );

Der Event-Dispatcher findet "aktuelle_site:pegel:get_pegel" das Objekt 'pegel', prüft dessen $Self->{'HandlerHash'} auf 'get_pegel' und ob der User ein entsprechendes Recht hat, dann wird "$Self->getPegel_handler()" aufgerufen, wobei die 'mods' als Parameter mit übergeben werden. Dadurch kann ein Handler mehrfach mit unterschiedlichen Parametern benutzt werden.

View full thread Mein bisher kürzestes CGI-Script