Portál AbcLinuxu, 10. května 2025 04:17
$conn->add_handler (376, sub { $self->on_connect ($conn)) });
Pokud mas jiny zpusob, jak dostat do fce parametry, nez zavolanim te dane fce s danymi parametry, ozvi seAno, globální proměnnou. Někde totiž musíš mít inicializaci
$conn
, pravděpodobně ve stylu $conn = package->new()
, tak co ti brání mít $conn
jako glob. proměnnou (nebo lexikální proměnnou definovanou dostatečně vysoko, aby ji viděl i handler)?
Tím, že uděláš sub { $self->on_connect ($conn) }
, dostaneš přinejmenším vedlejší efekt, který tě může a nemusí trápit: v těle on_connect
budeš mít pořád stejnou hodnotu $conn
, jak byla když se volalo add_handler
, i kdyby se skutečná proměnná $conn
mezitím změnila.
No $conn je navrat metody modulu, ktery vraci tu objektovou instnanci, cili pokud umi tim zpusobem, co jsi naznacil, perl pristupovat ke globalnim promennym, nebudu vahat
S perlem delam teprve par tydnu a zacal jsem z prostredka, ponevadz zaklady algorytmizace uz mam za sebou v s jinymi jazyky - byla by to nuda Takhle rovnou zkousim psat IRC bota a na tom se ucim defacto cely perl.... kazdopadne diky za radu
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.