Attribuut :: Handlers

Simpler-definitie van attribuuthandlers
Download nu

Attribuut :: Handlers Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Steffen Muller
  • Uitgever website:
  • http://search.cpan.org/~smueller/

Attribuut :: Handlers Tags


Attribuut :: Handlers Beschrijving

Eenvoudigere definitie van attribuuthandlers Het attribuut :: Handlers Perl-module, wanneer geërfd door een pakket, kan de klasse van die pakket het kenmerk-handler-subroutines voor specifieke kenmerken definiëren voor specifieke kenmerken. Variabelen en subroutines die vervolgens worden gedefinieerd in dat pakket, of in pakketten die uit dat pakket zijn afgeleid, kunnen kenmerken met dezelfde namen worden gegeven als de subroutinesattribuut-handler-subroutines, die dan in een van de compilatie-fasen worden opgeroepen (dwz in een begin, init, init of eindblok). (Unitcheck-blokken komen niet overeen met een wereldwijde compilatiefase, zodat ze hier niet kunnen worden gespecificeerd.) Om een handler te maken, definieert het als een subroutine met dezelfde naam als het gewenste kenmerk en de subroutine zelf verklaart met het kenmerk zelf : ATW. Bijvoorbeeld: pakket louddecl; Gebruik attribuut :: Handlers; Sub Loud: At {My ($ pakket, $ symbool, $ referent, $ attw, $ gegevens, $ fase, $ bestandsnaam, $ linnenum) = @_; PRINT STDERR REF ($ REFERENT), "", * {$ SYMBY} {NAAM} "," ", ($ referent)", "is net aangegeven" ", en schreef de $ {ATW} Attribuut" met gegevens aan ($ gegevens) "," In fase $ fase "," in bestand $ Bestandsnaam bij Line $ Linenum ";} Dit creëert een handler voor het attribuut: luid in de klasse Louddecl. Daarna, elke subroutine verklaard met een: luid attribuut in de klasse Louddecl: pakket louddecl; sub foo: luid {...} zorgt ervoor dat de bovenstaande handler is Opgeroepen en gepasseerd: De naam van het pakket waarin het werd verklaard; Een verwijzing naar de inzending van het symbooltabel (Typeglob) die de subroutine bevat; Een verwijzing naar de subroutine; De naam van het kenmerk; Alle gegevens in verband met dat kenmerk; de naam van de fase waarin de handler wordt aangeroepen; De bestandsnaam waarin de handler wordt aangeroepen; Het lijnnummer in Dit bestand.synopsis pakket MyCLASS; vereisen 5.006; Gebruik attribuut :: Handlers; geen waarschuwingen 'herdefinie'; sub goed: att (Scalar) {mijn ($ pakket, $ symbool, $ referent, $ attra, $ gegevens) = @_ ; # Aangeroepen voor elke scalaire variabele met een: Good Attribuut, # op voorwaarde dat de variabele in MyClass (of # een afgeleide klasse) is gedeclareerd of getypt aan MyClass. # Doe wat naar $ REFERENT hier in de controlefase). ...} Sub Bad: ATW (Scalar) {# Opgeroepen voor elke scalaire variabele met een: slecht attribuut, op voorwaarde dat de variabele in MyClass (of # een afgeleide klasse) is gedeclareerd of die op MyCLASS wordt getypt. ...} Sub Goed: ATW (array) {# Opgeroepen voor elke array-variabele met A: Good Attribuut, # op voorwaarde dat de variabele in MyClass (of # een afgeleide klasse) is gedeclareerd of die op MyClass is getypt. ...} Sub Goed: ATW (HASH) {# Opgeroepen voor elke hash-variabele met A: Good Attribuut, # op voorwaarde dat de variabele in MyCLass (of # een afgeleide klasse) is gedeclareerd of getypt met MyClass. ...} Sub Ugly: Attract (Code) {# Opgeroepen voor elke subroutine Geclareerd in MyClass (of een # Afgeleide klas) met een: Ugly Attribuut. ...} Sub Omni: ATW {# Opgeroepen voor elke scalaire, array, hash of subroutine # met een: OMNI-attribuut, op voorwaarde dat de variabele of # subroutine werd gedeclareerd in MyClass (of een afgeleide klasse) # of de variabele is getypt naar MyClass. # Gebruik ref ($ _ ) om te bepalen wat voor soort referent het was. ...} Attribuut gebruiken :: Handlers autotie => {cyclus => TIE :: Cyclus}; mijn $ volgende: cyclus (); Vereisten: · Perl


Attribuut :: Handlers Gerelateerde software