gebaseerd op
Gesponsorde links
Gesponsorde links
gebaseerd op
No.
Titel
Categorie
Prijs
Licentie
Expand All
1
Systeem - System Administration
BSD License
op het hulpmiddel verstrekt een flexibel middel voor systeembeheerders om toegang tot bepaalde wortelverrichtingen te verlenen zonder het moeten hen volledige superuservoorrechten geven.
De verschillende reeksen gebruikers kunnen tot verschillende verrichtingen toegang hebben, en de security-related aspecten van elke verrichting kunnen zorgvuldig worden gecontroleerd.
Het werd oorspronkelijk geschreven rond 1990 door Tom Christiansen en Dave Koblas. De verdere updates en porting werden uitgevoerd door Howard Owen. De laatste versie van deze wijnoogst is hier beschikbaar. De huidige versie wordt gehandhaafd door Alec Thomas.
I eerste kwam in contact met op terwijl het werken bij de Systemen van het Gokken van de Toegang, waar op uitgebreid werden gebruikt om ontwikkelaar en beheerdertoegang tot middelen te controleren.
Wat in Deze Versie Nieuw is:
· rpl_malloc/rpl_realloc werd toegevoegd zodat de systemen met dodgy implementaties zullen verbinden.
· Dit bevestigt compilatie op PK-UX.
· Als een hulpparameter niet bestaat, wordt het daadwerkelijke bevel dat voor de hulp moet worden in werking gesteld gebruikt.
· De opsporing voor openlog () werd het terugkeren leegte toegevoegd.
De verschillende reeksen gebruikers kunnen tot verschillende verrichtingen toegang hebben, en de security-related aspecten van elke verrichting kunnen zorgvuldig worden gecontroleerd.
Het werd oorspronkelijk geschreven rond 1990 door Tom Christiansen en Dave Koblas. De verdere updates en porting werden uitgevoerd door Howard Owen. De laatste versie van deze wijnoogst is hier beschikbaar. De huidige versie wordt gehandhaafd door Alec Thomas.
I eerste kwam in contact met op terwijl het werken bij de Systemen van het Gokken van de Toegang, waar op uitgebreid werden gebruikt om ontwikkelaar en beheerdertoegang tot middelen te controleren.
Wat in Deze Versie Nieuw is:
· rpl_malloc/rpl_realloc werd toegevoegd zodat de systemen met dodgy implementaties zullen verbinden.
· Dit bevestigt compilatie op PK-UX.
· Als een hulpparameter niet bestaat, wordt het daadwerkelijke bevel dat voor de hulp moet worden in werking gesteld gebruikt.
· De opsporing voor openlog () werd het terugkeren leegte toegevoegd.
2
Programmering - Bibliotheken
Perl Artistic
PDL:: De module van Perl van Ops bevat fundamentele wiskundige exploitanten.
Deze die module verstrekt de functies door PDL worden gebruikt de fundamentele wiskundige exploitanten (+ -/* enz.) te overbelasten en functioneert (zonde sqrt enz.)
Het omvat ook de functie log10, die een perlfunctie zou moeten zijn zodat wij het kunnen overbelasten!
De vermenigvuldiging van de matrijs (exploitant x) wordt behandeld door de module PDL:: Primitief.
$doc
$c = $name $a, $b, 0; # expliciete vraag met het slepen van 0
$c = $a $op $b; # overbelastte vraag
$a->inplace->$name ($b, 0); # wijzig $a inplace
Het kan aan het werk worden gemaakt inplace met de syntaxis $a->inplace. Deze functie wordt gebruikt om de binaire exploitant te overbelasten $optxt. Merk op dat wanneer het roepen van deze functie uitdrukkelijk u een derde argument moet leveren dat over het algemeen nul zou moeten zijn (zie eerste voorbeeld). Deze beperking zou moeten weggaan voortaan versies. EOD} # sub: biop ()
#simple binaire mijn functies subbifunc {($name, $func, $swap, $doc, %extra) = @_; mijn $funcov = ref$func eq SERIE? $func-> [1]: $func; mijn $isop=0; als ($funcov =~ s/^op//) {$isop = 1; } mijn $funcovp = protect_chars $funcov; $func = $func-> [0] als ref $func eq OPSTELT; als ($swap) {$extra {HdrCode}. = << EOH; pdl *tmp; als (ruilmiddel) {tmp = a; a = B; B = tmp; } EOH} mijn $ovcall; # is dit één dat als functie of exploitant moet worden gebruikt? als ($isop) {$ovcall = „$c = $a $funcov $b; # overbelast gebruik“; } anders {$ovcall = „$c = $funcov $a, $b; # overbelast gebruik“; } pp_def ($name, HandleBad => 1, NoBadifNaN => 1, Pari => a (); B (); [o] c (); , Het ruilmiddel van OtherPars => int., Inplace => [a], # snel en vuile te krijgen oplossing - >inplace doe zijn baanCode => „$c () = $func ($a (), $b ()); “, BadCode => als ($ISBAD (()) || $ISBAD (B ()) ) $SETBAD (c ()); anders. „n $c () = $func ($a (), $b ()); n“, CopyBadStatusCode => als ($BADFLAGCACHE ()) {als (een == c && $ISPDLSTATEGOOD (a)) {PDL->propagate_badflag (c, 1); /* hebben inplace op EN badflag */} $SETPDLSTATEBAD (c) heeft veranderd; }, %extra, Doc. => << „EOD“); =for ref
$doc
$c = $a->$name ($b, 0); # expliciete functievraag
$ovcall
$a->inplace->$name ($b, 0); # wijzig $a inplace
Het kan aan het werk worden gemaakt inplace met de syntaxis $a->inplace. Deze functie wordt gebruikt om de binaire functie te overbelasten $funcovp. Merk op dat wanneer het roepen van deze functie uitdrukkelijk u een derde argument moet leveren dat over het algemeen nul zou moeten zijn (zie eerste voorbeeld). Deze beperking zou moeten weggaan voortaan versies. EOD} # sub: bifunc ()
# eenvoudige unary functies en exploitanten sub mijn ufunc {($name, $func, $doc, %extra) = @_; mijn $funcov = ref$func eq SERIE? $func-> [1]: $func; mijn $funcovp = protect_chars $funcov; $func = $func-> [0] als ref $func eq OPSTELT;
# handvatuitzonderingen
mijn $badcode = $ISBAD (());
als (bestaat $extra {Uitzondering}) {
# $badcode. = „ || $extra {Uitzondering}“;
# druk „Waarschuwing: genegeerde uitzondering voor $namen“;
schrap $exists {Uitzondering};
}
# moet niet me over propogation van badflag ongerust maken wanneer
# inplace sinds slechts ingevoerd piddle is a, vandaar zijn badflag
# niet zal veranderen
# TENZIJ een uitzondering… voorkomt
pp_def ($name,
Pari => a (); [o] B (),
HandleBad => 1,
NoBadifNaN => 1,
Inplace => 1,
Code =>
„$b () = $func ($a ()); “,
BadCode =>
als (. $badcode. )
$SETBAD (B ());
anders. „n $b () = $func ($a ()); n“,
%extra,
Doc. => << „EOD“);
=for ref
$doc
$b = $funcov $a;
$a->inplace->$name; # wijzig $a inplace
Het kan aan het werk worden gemaakt inplace met de syntaxis $a->inplace. Deze functie wordt gebruikt om de unary exploitant $funcovp/de functie te overbelasten. EOD} # sub: ufunc ()
######################################################################
# hier sluiten wij sommige onwettige verrichtingen op -- zie de de optie # nota van de Uitzondering, voor ufunc () s, werken de controles niet te goed # want het niet ondertekende geheel (d.w.z. < 0) # # XXX behoeften denkend over # typt - moet in de sectie van de Code integreren eveneens (zo # is 12/pdl (2.4.0.3) opgesloten en gemarkeerde slecht) # --> ingewikkeld # - misschien kon het gebruik typen % {%}? # # heeft ==> momenteel uit de uitzonderingscode becommentari
Deze die module verstrekt de functies door PDL worden gebruikt de fundamentele wiskundige exploitanten (+ -/* enz.) te overbelasten en functioneert (zonde sqrt enz.)
Het omvat ook de functie log10, die een perlfunctie zou moeten zijn zodat wij het kunnen overbelasten!
De vermenigvuldiging van de matrijs (exploitant x) wordt behandeld door de module PDL:: Primitief.
$doc
$c = $name $a, $b, 0; # expliciete vraag met het slepen van 0
$c = $a $op $b; # overbelastte vraag
$a->inplace->$name ($b, 0); # wijzig $a inplace
Het kan aan het werk worden gemaakt inplace met de syntaxis $a->inplace. Deze functie wordt gebruikt om de binaire exploitant te overbelasten $optxt. Merk op dat wanneer het roepen van deze functie uitdrukkelijk u een derde argument moet leveren dat over het algemeen nul zou moeten zijn (zie eerste voorbeeld). Deze beperking zou moeten weggaan voortaan versies. EOD} # sub: biop ()
#simple binaire mijn functies subbifunc {($name, $func, $swap, $doc, %extra) = @_; mijn $funcov = ref$func eq SERIE? $func-> [1]: $func; mijn $isop=0; als ($funcov =~ s/^op//) {$isop = 1; } mijn $funcovp = protect_chars $funcov; $func = $func-> [0] als ref $func eq OPSTELT; als ($swap) {$extra {HdrCode}. = << EOH; pdl *tmp; als (ruilmiddel) {tmp = a; a = B; B = tmp; } EOH} mijn $ovcall; # is dit één dat als functie of exploitant moet worden gebruikt? als ($isop) {$ovcall = „$c = $a $funcov $b; # overbelast gebruik“; } anders {$ovcall = „$c = $funcov $a, $b; # overbelast gebruik“; } pp_def ($name, HandleBad => 1, NoBadifNaN => 1, Pari => a (); B (); [o] c (); , Het ruilmiddel van OtherPars => int., Inplace => [a], # snel en vuile te krijgen oplossing - >inplace doe zijn baanCode => „$c () = $func ($a (), $b ()); “, BadCode => als ($ISBAD (()) || $ISBAD (B ()) ) $SETBAD (c ()); anders. „n $c () = $func ($a (), $b ()); n“, CopyBadStatusCode => als ($BADFLAGCACHE ()) {als (een == c && $ISPDLSTATEGOOD (a)) {PDL->propagate_badflag (c, 1); /* hebben inplace op EN badflag */} $SETPDLSTATEBAD (c) heeft veranderd; }, %extra, Doc. => << „EOD“); =for ref
$doc
$c = $a->$name ($b, 0); # expliciete functievraag
$ovcall
$a->inplace->$name ($b, 0); # wijzig $a inplace
Het kan aan het werk worden gemaakt inplace met de syntaxis $a->inplace. Deze functie wordt gebruikt om de binaire functie te overbelasten $funcovp. Merk op dat wanneer het roepen van deze functie uitdrukkelijk u een derde argument moet leveren dat over het algemeen nul zou moeten zijn (zie eerste voorbeeld). Deze beperking zou moeten weggaan voortaan versies. EOD} # sub: bifunc ()
# eenvoudige unary functies en exploitanten sub mijn ufunc {($name, $func, $doc, %extra) = @_; mijn $funcov = ref$func eq SERIE? $func-> [1]: $func; mijn $funcovp = protect_chars $funcov; $func = $func-> [0] als ref $func eq OPSTELT;
# handvatuitzonderingen
mijn $badcode = $ISBAD (());
als (bestaat $extra {Uitzondering}) {
# $badcode. = „ || $extra {Uitzondering}“;
# druk „Waarschuwing: genegeerde uitzondering voor $namen“;
schrap $exists {Uitzondering};
}
# moet niet me over propogation van badflag ongerust maken wanneer
# inplace sinds slechts ingevoerd piddle is a, vandaar zijn badflag
# niet zal veranderen
# TENZIJ een uitzondering… voorkomt
pp_def ($name,
Pari => a (); [o] B (),
HandleBad => 1,
NoBadifNaN => 1,
Inplace => 1,
Code =>
„$b () = $func ($a ()); “,
BadCode =>
als (. $badcode. )
$SETBAD (B ());
anders. „n $b () = $func ($a ()); n“,
%extra,
Doc. => << „EOD“);
=for ref
$doc
$b = $funcov $a;
$a->inplace->$name; # wijzig $a inplace
Het kan aan het werk worden gemaakt inplace met de syntaxis $a->inplace. Deze functie wordt gebruikt om de unary exploitant $funcovp/de functie te overbelasten. EOD} # sub: ufunc ()
######################################################################
# hier sluiten wij sommige onwettige verrichtingen op -- zie de de optie # nota van de Uitzondering, voor ufunc () s, werken de controles niet te goed # want het niet ondertekende geheel (d.w.z. < 0) # # XXX behoeften denkend over # typt - moet in de sectie van de Code integreren eveneens (zo # is 12/pdl (2.4.0.3) opgesloten en gemarkeerde slecht) # --> ingewikkeld # - misschien kon het gebruik typen % {%}? # # heeft ==> momenteel uit de uitzonderingscode becommentari
3
Systeem - System Administration
GPL (GNU Gene
Het Controlebord van Ops is een frontend voor MRTG.
In tegenstelling tot veel andere voorkanten, heeft het geen vereisten voorbij die van MRTG, hoewel het de pHP-Toegelaten servers kan steunen van het Web in plaats van enkel het lopen als manuscript van CGI Perl.
Het project van het Controlebord van Ops verstrekt overzichten van op mRTG-Gebaseerde controlepagina's in een verscheidenheid van formaten.
In tegenstelling tot veel andere voorkanten, heeft het geen vereisten voorbij die van MRTG, hoewel het de pHP-Toegelaten servers kan steunen van het Web in plaats van enkel het lopen als manuscript van CGI Perl.
Het project van het Controlebord van Ops verstrekt overzichten van op mRTG-Gebaseerde controlepagina's in een verscheidenheid van formaten.
4
Programmering - Bibliotheken
Perl Artistic
Embperl:: Syntaxis:: RTF is een klasse Perl uit Embperl wordt afgeleid die:: Syntaxis om de syntaxis voor RTF-dossiers te bepalen. De RTF-dossiers kunnen door diverse tekstverwerking worden gelezen en worden geschreven programms. Dit staat u toe om dynamische wordprocessing documenten te creëren of proces periodieke brieven te laten door Embperl.
Momenteel regocnices Embperl de gebieden DOCVARIABLE, MERGEFIELD en DAARNA. Variablenames wordt opgelost aangezien knoeiboelsleutels tot $param [0] b.v. foo.bar referes aan $param [0] {foo} {staaf}, kan de @paramSerie door reeks via de paramparameter van Execute functioneren. VOLGENDE bewegingen aan het volgende element van de @paramserie. Als het eind van het document wordt bereikt, herhaalt Embperl het document tot al element van @param wordt verwerkt. Dit kan bijvoorbeeld gebruik zijn om een gegevensbestandlijst te binden aan @param en een periodieke brief te produceren.
SYNOPSIS
mijn $x = $Embperl:: req - > component - > code;
mijn ($op, $cmp, $a, $b) = XML:: Embperl:: DOM:: Knoop:: iChildsText (%$q%, %$x%, 1) =~/: ([=<>]) +s* " (. *?)„(?: s*“ (. *?)„s*“ (. *?)“)? /;
als ($op eq =) {$op = eq}
elsif ($op eq <) {$op = Lt.}
elsif ($op eq >) {$op = GT}
elsif ($op eq >=) {$op = Duitsland}
elsif ($op eq <=) {$op = le}
druk „n#“. __LINE. “ op = $op cmp = $cmp a = $a B = $b code=$_ep_rtf_code tmp=$_ep_rtf_tmp 0=$param [0] {adressen_anrede} ndx=$_ep_rtf_ndx eval=qq [$_ep_rtf_code] n ";
$_ep_rtf_code =~ s/$a/q [$a] /g;
$_ep_rtf_code =~ s/$b/q [$b] /g;
$_ep_rtf_code =~ s/$cmp/q [$cmp] /g;
$_ep_rtf_code =~ s/$op/$op/g;
$_ep_rtf_code =~ s/$x/$x/g;
druk „result=$_ep_rtf_coden“;
waarschuw „RTF ALS syntaxisfout. Ontbrekende exploitant“ als (! $op);
Momenteel regocnices Embperl de gebieden DOCVARIABLE, MERGEFIELD en DAARNA. Variablenames wordt opgelost aangezien knoeiboelsleutels tot $param [0] b.v. foo.bar referes aan $param [0] {foo} {staaf}, kan de @paramSerie door reeks via de paramparameter van Execute functioneren. VOLGENDE bewegingen aan het volgende element van de @paramserie. Als het eind van het document wordt bereikt, herhaalt Embperl het document tot al element van @param wordt verwerkt. Dit kan bijvoorbeeld gebruik zijn om een gegevensbestandlijst te binden aan @param en een periodieke brief te produceren.
SYNOPSIS
mijn $x = $Embperl:: req - > component - > code;
mijn ($op, $cmp, $a, $b) = XML:: Embperl:: DOM:: Knoop:: iChildsText (%$q%, %$x%, 1) =~/: ([=<>]) +s* " (. *?)„(?: s*“ (. *?)„s*“ (. *?)“)? /;
als ($op eq =) {$op = eq}
elsif ($op eq <) {$op = Lt.}
elsif ($op eq >) {$op = GT}
elsif ($op eq >=) {$op = Duitsland}
elsif ($op eq <=) {$op = le}
druk „n#“. __LINE. “ op = $op cmp = $cmp a = $a B = $b code=$_ep_rtf_code tmp=$_ep_rtf_tmp 0=$param [0] {adressen_anrede} ndx=$_ep_rtf_ndx eval=qq [$_ep_rtf_code] n ";
$_ep_rtf_code =~ s/$a/q [$a] /g;
$_ep_rtf_code =~ s/$b/q [$b] /g;
$_ep_rtf_code =~ s/$cmp/q [$cmp] /g;
$_ep_rtf_code =~ s/$op/$op/g;
$_ep_rtf_code =~ s/$x/$x/g;
druk „result=$_ep_rtf_coden“;
waarschuw „RTF ALS syntaxisfout. Ontbrekende exploitant“ als (! $op);
5
Programmering - Bibliotheken
Perl Artistic
B:: Utils is een helper functioneert voor op boommanipulatie.
SYNOPSIS
gebruik B:: Utils;
Deze functies maken het gemakkelijker om de op boom te manipuleren.
FUNCTIES
all_starts
all_roots
Komt een knoeiboel van alle aanvang ops of wortel ops van gesloten optrees, op subroutinenaam terug; optree voor hoofdprogramma wordt eenvoudig gesloten aan __MAIN.
Nota: Bepaalde „gevaarlijke“ geheime bergplaatsen worden niet afgetast voor subroutines: de lijst van dergelijke geheime bergplaatsen kan in @B worden gevonden:: Utils:: bad_stashes. Voel vrij om dit te onderzoeken en te wijzigen om uw behoeften aan te passen. De bedoeling is dat een eenvoudig programma dat geen modules buiten B en B: gebruikt: Utils zou geen toevoegingssymbolen tonen.
Dit keert niet de details van ops in anonieme die subroutines terug worden gecompileerd bij compileert tijd. Bijvoorbeeld, gegeven
$a = sub {…};
de subroutine zal niet in de knoeiboel verschijnen. Dit is just as well, sinds theyre anoniem… Als u bij hen wilt krijgen, gebruik…
anon_subs ()
Dit keert een serie van knoeiboelverwijzingen terug. Elk element heeft de sleutels „begin“ en „wortel“. Dit zijn de aanvang en de wortel ops van alle anonieme subroutines in het programma.
$op->oldname
Keert de naam van op terug, zelfs als het momenteel om wordt geoptimaliseerd nietig te verklaren. Dit helpt u de structuur van de op boom begrijpen.
$op->kids
Keert een serie van al dit ops niet-krachteloze kinderen, in orde terug.
$op->first
$op->last
$op->other
Normaal als u eerst roept, duur of andere op om het even wat die een geen UNOP, een BINOP of LOGOP is respectivly het zal sterven. Dit leidt tot veel code als:
$op->first als $op->can (eerst);
B:: Utils voorziet elke op van eerste, laatste en andere methodes die eenvoudig niets zullen terugkeren als het niet relevant is.
$op->parent
Keert de ouderknoop in de op boom terug, indien mogelijk. „Momenteel mogelijk“ betekent „als de boom reeds“ is geoptimaliseerd; namelijk als tijdens een blok van de CONTROLE waren. (en vandaar, als wij geldige volgende wijzers. hebben)
In de toekomst, kan het mogelijk zijn om naar de ouder te zoeken alvorens wij de volgende wijzers op zijn plaats hebben, maar itll neem me een tijdje te berekenen hoe te om dat te doen.
$op->previous
Als $op->next, maar niet helemaal.
walkoptree_simple ($op, &callback, [$data])
De module van B verstrekt diverse functies om de op boom te lopen, maar theyre allen eerder moeilijk te gebruiken, vereisend u om methodes in B in te spuiten:: op klasse. Dit is een zeer eenvoudige op boomleurder met meer verwachte semantiek.
&callback bij elke die op met op geroepen zelf wordt binnen als eerste argument en om het even welke extra $data als de tweede wordt overgegaan.
Alle gangfuncties plaatsen $B:: Utils:: dossier en $B:: Utils:: lijn aan de aangewezen waarden van dossier en lijnaantal in het programma die worden onderzocht. Aangezien slechts COPs deze informatie bevatten kan het in de eerste callback vraag niet beschikbaar zijn.
walkoptree_filtered ($op, &filter, &callback, [$data])
Dit is veel het zelfde als walkoptree_simple, maar zal slechts callback roepen als de filter waar terugkeert. De filter wordt overgegaan op in kwestie als parameter; de opgrepfunctie is fantastisch voor de bouw van uw eigen filters.
walkallops_simple (&callback, [$data])
Dit combineert walkoptree_simple met all_roots en anon_subs om elke op in het programma te onderzoeken. $B:: Utils:: sub wordt geplaatst aan de subroutinenaam als youre in een subroutine, __MAIN als youre in het belangrijkste programma en __ANON als youre in een anonieme subroutine.
walkallops_filtered (&filter, &callback, [$data])
Zelfde zoals hierboven, maar gefiltreerd.
SYNOPSIS
gebruik B:: Utils;
Deze functies maken het gemakkelijker om de op boom te manipuleren.
FUNCTIES
all_starts
all_roots
Komt een knoeiboel van alle aanvang ops of wortel ops van gesloten optrees, op subroutinenaam terug; optree voor hoofdprogramma wordt eenvoudig gesloten aan __MAIN.
Nota: Bepaalde „gevaarlijke“ geheime bergplaatsen worden niet afgetast voor subroutines: de lijst van dergelijke geheime bergplaatsen kan in @B worden gevonden:: Utils:: bad_stashes. Voel vrij om dit te onderzoeken en te wijzigen om uw behoeften aan te passen. De bedoeling is dat een eenvoudig programma dat geen modules buiten B en B: gebruikt: Utils zou geen toevoegingssymbolen tonen.
Dit keert niet de details van ops in anonieme die subroutines terug worden gecompileerd bij compileert tijd. Bijvoorbeeld, gegeven
$a = sub {…};
de subroutine zal niet in de knoeiboel verschijnen. Dit is just as well, sinds theyre anoniem… Als u bij hen wilt krijgen, gebruik…
anon_subs ()
Dit keert een serie van knoeiboelverwijzingen terug. Elk element heeft de sleutels „begin“ en „wortel“. Dit zijn de aanvang en de wortel ops van alle anonieme subroutines in het programma.
$op->oldname
Keert de naam van op terug, zelfs als het momenteel om wordt geoptimaliseerd nietig te verklaren. Dit helpt u de structuur van de op boom begrijpen.
$op->kids
Keert een serie van al dit ops niet-krachteloze kinderen, in orde terug.
$op->first
$op->last
$op->other
Normaal als u eerst roept, duur of andere op om het even wat die een geen UNOP, een BINOP of LOGOP is respectivly het zal sterven. Dit leidt tot veel code als:
$op->first als $op->can (eerst);
B:: Utils voorziet elke op van eerste, laatste en andere methodes die eenvoudig niets zullen terugkeren als het niet relevant is.
$op->parent
Keert de ouderknoop in de op boom terug, indien mogelijk. „Momenteel mogelijk“ betekent „als de boom reeds“ is geoptimaliseerd; namelijk als tijdens een blok van de CONTROLE waren. (en vandaar, als wij geldige volgende wijzers. hebben)
In de toekomst, kan het mogelijk zijn om naar de ouder te zoeken alvorens wij de volgende wijzers op zijn plaats hebben, maar itll neem me een tijdje te berekenen hoe te om dat te doen.
$op->previous
Als $op->next, maar niet helemaal.
walkoptree_simple ($op, &callback, [$data])
De module van B verstrekt diverse functies om de op boom te lopen, maar theyre allen eerder moeilijk te gebruiken, vereisend u om methodes in B in te spuiten:: op klasse. Dit is een zeer eenvoudige op boomleurder met meer verwachte semantiek.
&callback bij elke die op met op geroepen zelf wordt binnen als eerste argument en om het even welke extra $data als de tweede wordt overgegaan.
Alle gangfuncties plaatsen $B:: Utils:: dossier en $B:: Utils:: lijn aan de aangewezen waarden van dossier en lijnaantal in het programma die worden onderzocht. Aangezien slechts COPs deze informatie bevatten kan het in de eerste callback vraag niet beschikbaar zijn.
walkoptree_filtered ($op, &filter, &callback, [$data])
Dit is veel het zelfde als walkoptree_simple, maar zal slechts callback roepen als de filter waar terugkeert. De filter wordt overgegaan op in kwestie als parameter; de opgrepfunctie is fantastisch voor de bouw van uw eigen filters.
walkallops_simple (&callback, [$data])
Dit combineert walkoptree_simple met all_roots en anon_subs om elke op in het programma te onderzoeken. $B:: Utils:: sub wordt geplaatst aan de subroutinenaam als youre in een subroutine, __MAIN als youre in het belangrijkste programma en __ANON als youre in een anonieme subroutine.
walkallops_filtered (&filter, &callback, [$data])
Zelfde zoals hierboven, maar gefiltreerd.
6
Programmering - Bibliotheken
Perl Artistic
B:: OptreeShortestPath is een module Perl die de methodes toevoegt - >shortest_path ($op) en - >all_paths () aan al B:: op voorwerpen in een optree.
SYNOPSIS
gebruik B qw (main_root main_start);
gebruik B:: OptreeShortestPath;
voor (main_start () - >shortest_path (main_root ())) {
druk „$_n“;
}
METHODES
$op->shortest_path ($other_op)
Keert een lijst van de kortste wegen van $op aan $other_op terug. Elke weg is een koord dat een bos van geketende methodevraag benadert.
„- >next->sibling->next“,
„- >sibling->sibling->next“
$op->all_paths ()
Keert een lijst van wegen van deze knoop aan alle andere knopen terug.
SYNOPSIS
gebruik B qw (main_root main_start);
gebruik B:: OptreeShortestPath;
voor (main_start () - >shortest_path (main_root ())) {
druk „$_n“;
}
METHODES
$op->shortest_path ($other_op)
Keert een lijst van de kortste wegen van $op aan $other_op terug. Elke weg is een koord dat een bos van geketende methodevraag benadert.
„- >next->sibling->next“,
„- >sibling->sibling->next“
$op->all_paths ()
Keert een lijst van wegen van deze knoop aan alle andere knopen terug.
7
Programmering - Bibliotheken
Perl Artistic
B:: Produceer is een module Perl die u uw eigen op bomen kunt creëren.
SYNOPSIS
gebruik B:: Produceer;
# Doe niets, langzaam.
CONTROLEER {
mijn $null = nieuwe B:: op („verklaar“, 0 nietig);
mijn $enter = nieuwe B:: op („ga“, 0 binnen);
mijn $cop = nieuwe B:: COP (0, „hiya“, 0);
mijn $leave = nieuwe B:: LISTOP („verlof“, 0, $enter, $null);
$leave->children (3);
$enter->sibling ($cop);
$enter->next ($cop);
$cop->sibling ($null);
$null->next ($leave);
$cop->next ($leave);
# Vertel Perl waar te om onze boom te vinden.
B:: main_root ($leave);
B:: main_start ($enter);
}
WAARSCHUWING
Deze module zal segmentatie tot fouten leiden als u niet het weet hoe te om het behoorlijk te gebruiken. Verdere waarschuwing: soms het weet ik niet hoe te om het behoorlijk te gebruiken.
Er zijn veel andere methodes en nutsfuncties, maar zij zijn niet hier gedocumenteerd. Dit is weloverwogen, eerder dan enkel door luiheid. U zou moeten Perl en de bronnen XS aan deze module lezen alvorens om om het even wat met het te proberen te doen.
Het onthaal van flarden.
De module van Malcolm Beatties B staat u toe om de boom van Perl op bij runtime, in ruimte te onderzoeken Perl; zijn de basis van de compiler Perl. Maar geen wat het laten doet u bent manipuleert dat op boom: het zal u niet nieuwe ops laten tot stand brengen, of oude degenen wijzigen. Nu kunt u.
Goed, als youre intiem vertrouwd met internals Perls, u kunt.
B:: Produceer accessormethodes van draaienBS in krijgen-vastgestelde methodes. Vandaar, in plaats van slechts het zeggen
$op2 = $op->next;
u kunt nu zeggen
$op->next ($op2);
om volgende op in de ketting te plaatsen. Het voegt ook aannemersmethodes toe om tot nieuwe ops te leiden. Dit is waar het werkelijk harig wordt.
nieuwe B:: op (type, vlaggen)
nieuwe B:: UNOP (type, vlaggen, eerst)
nieuwe B:: BINOP (het type, vlaggen, eerst, duurt)
nieuwe B:: LOGOP (type, vlaggen, eerst, andere)
nieuwe B:: LISTOP (het type, vlaggen, eerst, duurt)
nieuwe B:: COP (vlaggen, naam, eerst)
In alle bovengenoemde aannemers, is het type of een numerieke waarde het op type (62 zijn de toevoegingsexploitant, bijvoorbeeld) vertegenwoordigen of de naam die van op. („voeg“ toe)
(Overigens, als u van douane ops op de hoogte bent en hebt registed hen behoorlijk met de tolk, kunt u douane ops door naam tot stand brengen: nieuwe B:: op („mycustomop“, 0), of wat.)
eerst, duur en andere moet ops aan huidige op worden vastgemaakt; dit zouden B moeten zijn:: op voorwerpen. Als havent u ops nog cre
SYNOPSIS
gebruik B:: Produceer;
# Doe niets, langzaam.
CONTROLEER {
mijn $null = nieuwe B:: op („verklaar“, 0 nietig);
mijn $enter = nieuwe B:: op („ga“, 0 binnen);
mijn $cop = nieuwe B:: COP (0, „hiya“, 0);
mijn $leave = nieuwe B:: LISTOP („verlof“, 0, $enter, $null);
$leave->children (3);
$enter->sibling ($cop);
$enter->next ($cop);
$cop->sibling ($null);
$null->next ($leave);
$cop->next ($leave);
# Vertel Perl waar te om onze boom te vinden.
B:: main_root ($leave);
B:: main_start ($enter);
}
WAARSCHUWING
Deze module zal segmentatie tot fouten leiden als u niet het weet hoe te om het behoorlijk te gebruiken. Verdere waarschuwing: soms het weet ik niet hoe te om het behoorlijk te gebruiken.
Er zijn veel andere methodes en nutsfuncties, maar zij zijn niet hier gedocumenteerd. Dit is weloverwogen, eerder dan enkel door luiheid. U zou moeten Perl en de bronnen XS aan deze module lezen alvorens om om het even wat met het te proberen te doen.
Het onthaal van flarden.
De module van Malcolm Beatties B staat u toe om de boom van Perl op bij runtime, in ruimte te onderzoeken Perl; zijn de basis van de compiler Perl. Maar geen wat het laten doet u bent manipuleert dat op boom: het zal u niet nieuwe ops laten tot stand brengen, of oude degenen wijzigen. Nu kunt u.
Goed, als youre intiem vertrouwd met internals Perls, u kunt.
B:: Produceer accessormethodes van draaienBS in krijgen-vastgestelde methodes. Vandaar, in plaats van slechts het zeggen
$op2 = $op->next;
u kunt nu zeggen
$op->next ($op2);
om volgende op in de ketting te plaatsen. Het voegt ook aannemersmethodes toe om tot nieuwe ops te leiden. Dit is waar het werkelijk harig wordt.
nieuwe B:: op (type, vlaggen)
nieuwe B:: UNOP (type, vlaggen, eerst)
nieuwe B:: BINOP (het type, vlaggen, eerst, duurt)
nieuwe B:: LOGOP (type, vlaggen, eerst, andere)
nieuwe B:: LISTOP (het type, vlaggen, eerst, duurt)
nieuwe B:: COP (vlaggen, naam, eerst)
In alle bovengenoemde aannemers, is het type of een numerieke waarde het op type (62 zijn de toevoegingsexploitant, bijvoorbeeld) vertegenwoordigen of de naam die van op. („voeg“ toe)
(Overigens, als u van douane ops op de hoogte bent en hebt registed hen behoorlijk met de tolk, kunt u douane ops door naam tot stand brengen: nieuwe B:: op („mycustomop“, 0), of wat.)
eerst, duur en andere moet ops aan huidige op worden vastgemaakt; dit zouden B moeten zijn:: op voorwerpen. Als havent u ops nog cre
8
Programmering - Bibliotheken
Perl Artistic
B:: Bblock - de basisblokken van de Gang.
SYNOPSIS
# Externe interface
perl - MO=Bblock [, OPTIES] foo.pl
# Programmatic API
gebruik B:: Bblock qw (find_leaders);
mijn $leaders = find_leaders ($root_op, $start_op);
Deze module wordt gebruikt door B:: De naherfst van CC. Het loopt „basisblokken“. Een basisblok is een reeks verrichtingen die gekend om van begin is uit te voeren, zonder mogelijkheid te beëindigen om zich te vertakken of te stoppen.
Het kan gebruikte of tribune alleen of van binnenuit een ander programma zijn.
Functies
find_leaders
mijn $leaders = find_leaders ($root_op, $start_op);
Gezien de wortel van de op boom en zullen op waarvan beginnen te verwerken, het een knoeiboel ref terugkeren die alle ops vertegenwoordigen die een blok beginnen.
De waarden van %$leaders zijn de op voorwerpen zelf. De sleutels zijn adressen.
SYNOPSIS
# Externe interface
perl - MO=Bblock [, OPTIES] foo.pl
# Programmatic API
gebruik B:: Bblock qw (find_leaders);
mijn $leaders = find_leaders ($root_op, $start_op);
Deze module wordt gebruikt door B:: De naherfst van CC. Het loopt „basisblokken“. Een basisblok is een reeks verrichtingen die gekend om van begin is uit te voeren, zonder mogelijkheid te beëindigen om zich te vertakken of te stoppen.
Het kan gebruikte of tribune alleen of van binnenuit een ander programma zijn.
Functies
find_leaders
mijn $leaders = find_leaders ($root_op, $start_op);
Gezien de wortel van de op boom en zullen op waarvan beginnen te verwerken, het een knoeiboel ref terugkeren die alle ops vertegenwoordigen die een blok beginnen.
De waarden van %$leaders zijn de op voorwerpen zelf. De sleutels zijn adressen.
9
Programmering - Bibliotheken
GPL (GNU Gene
Papegaai:: OpTrans:: C is een module Perl voor Ops aan de Generatie van de Code van C.
BESCHRIJVING
Papegaai:: OpTrans:: C erft van Papegaai:: OpTrans om een op functie-gebaseerde (langzame of snelle kern) in werking gestelde lijn te verstrekken.
De Methodes van de instantie
core_type ()
Winst PARROT_FUNCTION_CORE.
core_prefix ()
Keert een leeg koord terug.
bepaalt ()
Keert de #definemacro's van C voor registertoegang enz. terug
gen_goto ($where)
Reimplements de superclassmethode zodat $where geschikt wordt gegoten.
expr_address ($address)
Keert de code van C voor ADRES ($address) terug. Geroepen door goto_address ().
expr_offset ($offset)
Keert de code van C voor COMPENSATIE ($offset) terug. Geroepen door goto_offset ().
expr_pop ()
Keert de code van C voor POP () terug. Geroepen door goto_offset ().
access_arg ($type, $value, $op)
Keert de code van C voor het gespecificeerde op argumenttype (terug zie Papegaai:: OpTrans) en waarde. $op is een geval van Papegaai:: Op.
restart_offset ($offset)
Keert de code van C voor nieuw beginCOMPENSATIE (terug $offset).
restart_address ($address)
Keert de code van C voor nieuw beginADRES (terug $address).
BESCHRIJVING
Papegaai:: OpTrans:: C erft van Papegaai:: OpTrans om een op functie-gebaseerde (langzame of snelle kern) in werking gestelde lijn te verstrekken.
De Methodes van de instantie
core_type ()
Winst PARROT_FUNCTION_CORE.
core_prefix ()
Keert een leeg koord terug.
bepaalt ()
Keert de #definemacro's van C voor registertoegang enz. terug
gen_goto ($where)
Reimplements de superclassmethode zodat $where geschikt wordt gegoten.
expr_address ($address)
Keert de code van C voor ADRES ($address) terug. Geroepen door goto_address ().
expr_offset ($offset)
Keert de code van C voor COMPENSATIE ($offset) terug. Geroepen door goto_offset ().
expr_pop ()
Keert de code van C voor POP () terug. Geroepen door goto_offset ().
access_arg ($type, $value, $op)
Keert de code van C voor het gespecificeerde op argumenttype (terug zie Papegaai:: OpTrans) en waarde. $op is een geval van Papegaai:: Op.
restart_offset ($offset)
Keert de code van C voor nieuw beginCOMPENSATIE (terug $offset).
restart_address ($address)
Keert de code van C voor nieuw beginADRES (terug $address).
10
Programmering - Bibliotheken
Perl Artistic
PDL:: De module van Perl van Ufunc bevat primitieve ufuncverrichtingen voor pdl.
Deze module verstrekt sommige primitieve en nuttige bepaalde functies gebruikend PDL:: Pp worden gebaseerd op functionaliteit van wat soms ufuncs worden geroepen (bijvoorbeeld spreken NumPY en Mathematica die over deze). Het verzamelt alle die functies over het algemeen worden gebruikt om langs een afmeting te verminderen of te accumuleren. Deze allen doen hun werk over de eerste afmeting maar door de het snijden functies te gebruiken kunt u het op om het even welke afmeting doen.
PDL:: Verminder module verstrekt een alternatieve interface aan veel van de functies in deze module.
SYNOPSIS
gebruik PDL:: Ufunc;
Project via $name aan afmetingen n-1
Deze functie vermindert de dimensionaliteit van een piddle door door $name langs de 1st afmeting te nemen.
Door gebruikend xchg enz. is het mogelijk om om het even welke afmeting te gebruiken.
$a = $op ($b);
$spectrum = $op $image->xchg (0.1)
$extras
EOD
} # sub: projectdocs ()
sub mijn cumuprojectdocs {$name = verschuiving; mijn $op = verschuiving; mijn $extras = verschuiving; terugkeer <<EOD;
Cumulatieve $name
Deze functie berekent cumulatieve $name langs de 1st afmeting.
Door gebruikend xchg enz. is het mogelijk om om het even welke afmeting te gebruiken.
De som is begonnen zodat het eerste element in cumulatieve $name het eerste element van de parameter is.
$a = $op ($b);
$spectrum = $op $image->xchg (0.1)
$extras
EOD
} # sub: cumuprojectdocs ()
# zijn een onduidelijk beetje wat met de vergelijkingsexploitanten te doen, # aangezien de terugkeerwaarde slecht zou kunnen zijn omdat alle elementen slecht zijn, # die het controleren vergt aangezien de slechte waarde kon evalueren # waar of vals (b.v. als de gebruiker het aan 0) heeft geplaatst # # door te plaatsen CopyBadStatusCode aan, houden wij de output piddle # van automatisch wordt geplaatst tegen slecht als om het even welke input piddles slecht is. # - wij kunnen de vlag binnen BadCode indien nodig plaatsen # # dit kunnen NIET zinnig zijn. Slechts zullen de tijd, en de commentaren,… vertellen #
mijn %over = (sumover => {naam=> som, op => +=, init => 0,}, prodover => {naam=> product, op => *=, init => 1,},);
foreach mijn $func (sleutels %over) {
# cre
Deze module verstrekt sommige primitieve en nuttige bepaalde functies gebruikend PDL:: Pp worden gebaseerd op functionaliteit van wat soms ufuncs worden geroepen (bijvoorbeeld spreken NumPY en Mathematica die over deze). Het verzamelt alle die functies over het algemeen worden gebruikt om langs een afmeting te verminderen of te accumuleren. Deze allen doen hun werk over de eerste afmeting maar door de het snijden functies te gebruiken kunt u het op om het even welke afmeting doen.
PDL:: Verminder module verstrekt een alternatieve interface aan veel van de functies in deze module.
SYNOPSIS
gebruik PDL:: Ufunc;
Project via $name aan afmetingen n-1
Deze functie vermindert de dimensionaliteit van een piddle door door $name langs de 1st afmeting te nemen.
Door gebruikend xchg enz. is het mogelijk om om het even welke afmeting te gebruiken.
$a = $op ($b);
$spectrum = $op $image->xchg (0.1)
$extras
EOD
} # sub: projectdocs ()
sub mijn cumuprojectdocs {$name = verschuiving; mijn $op = verschuiving; mijn $extras = verschuiving; terugkeer <<EOD;
Cumulatieve $name
Deze functie berekent cumulatieve $name langs de 1st afmeting.
Door gebruikend xchg enz. is het mogelijk om om het even welke afmeting te gebruiken.
De som is begonnen zodat het eerste element in cumulatieve $name het eerste element van de parameter is.
$a = $op ($b);
$spectrum = $op $image->xchg (0.1)
$extras
EOD
} # sub: cumuprojectdocs ()
# zijn een onduidelijk beetje wat met de vergelijkingsexploitanten te doen, # aangezien de terugkeerwaarde slecht zou kunnen zijn omdat alle elementen slecht zijn, # die het controleren vergt aangezien de slechte waarde kon evalueren # waar of vals (b.v. als de gebruiker het aan 0) heeft geplaatst # # door te plaatsen CopyBadStatusCode aan, houden wij de output piddle # van automatisch wordt geplaatst tegen slecht als om het even welke input piddles slecht is. # - wij kunnen de vlag binnen BadCode indien nodig plaatsen # # dit kunnen NIET zinnig zijn. Slechts zullen de tijd, en de commentaren,… vertellen #
mijn %over = (sumover => {naam=> som, op => +=, init => 0,}, prodover => {naam=> product, op => *=, init => 1,},);
foreach mijn $func (sleutels %over) {
# cre
11
Programmering - Bibliotheken
Perl Artistic
Ben:: De vraag is een module Perl om een vraag voor gegeven te doen filesystem.
SYNOPSIS
het gebruik is:: Vraag;
@files = ben:: Vraag:: Vraag ($filesystem, $query);
doe een Vraag voor gegeven filesystem
GEBRUIK
@files = ben:: Vraag:: Vraag („/boot“, „name=lib*.so“);
$filesystem is een weg overal in het doel filesystem; $query is een vraagbouw, van de op van vormattributen waarde [op van schakelaarattributen waarde]
Zoals (naam = fido) || (grootte >= 500)
SYNOPSIS
het gebruik is:: Vraag;
@files = ben:: Vraag:: Vraag ($filesystem, $query);
doe een Vraag voor gegeven filesystem
GEBRUIK
@files = ben:: Vraag:: Vraag („/boot“, „name=lib*.so“);
$filesystem is een weg overal in het doel filesystem; $query is een vraagbouw, van de op van vormattributen waarde [op van schakelaarattributen waarde]
Zoals (naam = fido) || (grootte >= 500)
12
Programmering - Bibliotheken
Perl Artistic
B:: Asmdata is autogenerated gegevens over Perl ops, gebruikt om te produceren bytecode.
SYNOPSIS
gebruik B:: Asmdata qw (%insn_data @insn_name @optype @specialsv_name);
Verstrekt informatie over Perl ops bytecode via een bos van uitgevoerde variabelen te produceren. Zijn meestal gebruikt door B:: Assembleur en B:: Disassembler.
%insn_data
mijn ($bytecode_num, $put_sub, $get_meth) = @$insn_data {$op_name};
Voor een bepaalde $op_name (bijvoorbeeld, cop_label, sv_flags, etc…) u krijgt een serie ref die die het bytecodeaantal op, een verwijzing naar de subroutine die wordt bevatten om TE ZETTEN, en de naam van de methode wordt gebruikt gebruikt om TE KRIJGEN.
@insn_name
mijn $op_name = $insn_name [$bytecode_num];
Een eenvoudige afbeelding van het bytecodeaantal aan de naam van op. Geschikt om met %insn_data als te gebruiken zo:
mijn $op_info = $insn_data {$insn_name [$bytecode_num]};
@optype
mijn $op_type = $optype [$op_type_num];
Een eenvoudige afbeelding van het op type aantal aan zijn type (als COP of BINOP).
@specialsv_name
mijn $sv_name = $specialsv_name [$sv_index];
Bepaalde types van SV worden beschouwd als speciaal. Theyre door B wordt vertegenwoordigd die:: SPECIAAL en worden bedoeld door een aantal van specialsv_list. Deze serie brengt dat aantal terug naar de naam van SV (als Nullsv of &PL_sv_undef) in kaart.
SYNOPSIS
gebruik B:: Asmdata qw (%insn_data @insn_name @optype @specialsv_name);
Verstrekt informatie over Perl ops bytecode via een bos van uitgevoerde variabelen te produceren. Zijn meestal gebruikt door B:: Assembleur en B:: Disassembler.
%insn_data
mijn ($bytecode_num, $put_sub, $get_meth) = @$insn_data {$op_name};
Voor een bepaalde $op_name (bijvoorbeeld, cop_label, sv_flags, etc…) u krijgt een serie ref die die het bytecodeaantal op, een verwijzing naar de subroutine die wordt bevatten om TE ZETTEN, en de naam van de methode wordt gebruikt gebruikt om TE KRIJGEN.
@insn_name
mijn $op_name = $insn_name [$bytecode_num];
Een eenvoudige afbeelding van het bytecodeaantal aan de naam van op. Geschikt om met %insn_data als te gebruiken zo:
mijn $op_info = $insn_data {$insn_name [$bytecode_num]};
@optype
mijn $op_type = $optype [$op_type_num];
Een eenvoudige afbeelding van het op type aantal aan zijn type (als COP of BINOP).
@specialsv_name
mijn $sv_name = $specialsv_name [$sv_index];
Bepaalde types van SV worden beschouwd als speciaal. Theyre door B wordt vertegenwoordigd die:: SPECIAAL en worden bedoeld door een aantal van specialsv_list. Deze serie brengt dat aantal terug naar de naam van SV (als Nullsv of &PL_sv_undef) in kaart.
13
Programmering - Bibliotheken
Perl Artistic
B:: Beknopt is een Perl syntaxisboom, die beknopte info over ops drukt.
SYNOPSIS
perl - MO=Concise [, OPTIES] foo.pl
gebruik B:: Beknopte qw (set_style add_callback);
Dit compilerachterste deel drukt interne OPs van een Perl boom van de programma'ssyntaxis in één van verscheidene ruimte-efficiënte tekstformaten geschikt om de binnenwerkingen van perl of andere compiler te zuiveren backends. Het kan OPs in de orde drukken zij in de op boom, in de orde verschijnen die zij, of in een tekstbenadering aan hun boomstructuur zal uitvoeren, en het formaat van de getoonde informatie is klantgericht. Zijn functie is gelijkaardig aan dat van perls - het zuiveren Dx vlag of B:: De bruuske module, maar het is verfijnder en flexibel.
VOORBEELD
Heres een voorbeeld van 2 output (aka het teruggeven), gebruikend de - exec en - fundamentele (d.w.z. gebrek) formatterende overeenkomsten over het zelfde codefragment.
% perl - MO=Concise, - exec - e $a = $b + 42
1 <0> ga binnen
2 <; > nextstate (leiding 1 - e: 1) v
3 <#> gvsv [*b] s
4 <$> const [IV 42] s
* 5 <2> voegen [t3] sK/2 toe
6 <#> gvsv [*a] s
7 <2> sassign vKS/2
verlof 8 <@> [1 ref] vKP/REFC
Elke lijn beantwoordt aan een opcode. Opcode duidelijk met wordt * gebruikt in een paar hieronder voorbeelden.
De 1st kolom is het aantal van de opsopeenvolging, dat bij 1 begint, en in basis 36 door gebrek getoond. Dit het teruggeven is binnen - exec (d.w.z. uitvoering) orde.
Het symbool tussen hoekijzers wijst op het opstype, bijvoorbeeld; < zijn 2 > een BINOP, < @ > een LISTOP, en < # > is een PADOP, die in ingepast perls wordt gebruikt. (zie „OP klassenafkortingen“).
Opname, zoals binnen toevoeg [t1], die door op-specifieke informatie tussen haakjes of ex steunen ([t1] kan worden gevolgd).
De op-vlaggen (ex sK/2) volgen, en („OP vlaggenafkortingen“) binnen beschreven.
% perl - MO=Concise - e $a = $b + 42
verlof 8 <@> [1 ref] vKP/REFC - > (eind)
1 <0> ga - >2 binnen
2 <; > nextstate (leiding 1 - e: 1) v - >3
7 <2> sassign vKS/2 - >8
* 5 <2> voegen [t1] sK/2 toe - >6
- <1> ex-rv2sv sK/1 - >4
3 <$> gvsv (*b) s - >4
4 <$> const (IV 42) s - >5
- <1> ex-rv2sv sKRM*/1 - >7
6 <$> gvsv (*a) s - >7
Standaard teruggeven is top-down, zo theyre niet in uitvoeringsorde. Deze vorm wijst op de manier de stapel wordt gebruikt om uitdrukkingen te ontleden en te evalueren; voeg werkt onder de twee voorwaarden onder het in de boom toe.
Nullops verschijnt ex -ex-opname, waar opname op is die weg door perl is geoptimaliseerd. Theyre toonde met een opeenvolging-aantal van -, omdat zij niet (zij verschijnen niet in vorig voorbeeld) worden uitgevoerd, theyre hier gedrukt omdat zij op wijzen ontleden.
De pijl richt aan het opeenvolgingsaantal volgende op; theyre binnen getoond niet - exec wijze, om duidelijke redenen.
Merk op dat omdat dit het teruggeven op een non-threaded perl werd gedaan, PADOPs in de vorige voorbeelden nu SVOPs is, en wat (maar niet allen) zijn van de vierkante haakjes vervangen door ronde degenen. Dit is een subtiele eigenschap om wat visueel onderscheid te verstrekken tussen het teruggeven op ingepast en ontrafeld perls.
SYNOPSIS
perl - MO=Concise [, OPTIES] foo.pl
gebruik B:: Beknopte qw (set_style add_callback);
Dit compilerachterste deel drukt interne OPs van een Perl boom van de programma'ssyntaxis in één van verscheidene ruimte-efficiënte tekstformaten geschikt om de binnenwerkingen van perl of andere compiler te zuiveren backends. Het kan OPs in de orde drukken zij in de op boom, in de orde verschijnen die zij, of in een tekstbenadering aan hun boomstructuur zal uitvoeren, en het formaat van de getoonde informatie is klantgericht. Zijn functie is gelijkaardig aan dat van perls - het zuiveren Dx vlag of B:: De bruuske module, maar het is verfijnder en flexibel.
VOORBEELD
Heres een voorbeeld van 2 output (aka het teruggeven), gebruikend de - exec en - fundamentele (d.w.z. gebrek) formatterende overeenkomsten over het zelfde codefragment.
% perl - MO=Concise, - exec - e $a = $b + 42
1 <0> ga binnen
2 <; > nextstate (leiding 1 - e: 1) v
3 <#> gvsv [*b] s
4 <$> const [IV 42] s
* 5 <2> voegen [t3] sK/2 toe
6 <#> gvsv [*a] s
7 <2> sassign vKS/2
verlof 8 <@> [1 ref] vKP/REFC
Elke lijn beantwoordt aan een opcode. Opcode duidelijk met wordt * gebruikt in een paar hieronder voorbeelden.
De 1st kolom is het aantal van de opsopeenvolging, dat bij 1 begint, en in basis 36 door gebrek getoond. Dit het teruggeven is binnen - exec (d.w.z. uitvoering) orde.
Het symbool tussen hoekijzers wijst op het opstype, bijvoorbeeld; < zijn 2 > een BINOP, < @ > een LISTOP, en < # > is een PADOP, die in ingepast perls wordt gebruikt. (zie „OP klassenafkortingen“).
Opname, zoals binnen toevoeg [t1], die door op-specifieke informatie tussen haakjes of ex steunen ([t1] kan worden gevolgd).
De op-vlaggen (ex sK/2) volgen, en („OP vlaggenafkortingen“) binnen beschreven.
% perl - MO=Concise - e $a = $b + 42
verlof 8 <@> [1 ref] vKP/REFC - > (eind)
1 <0> ga - >2 binnen
2 <; > nextstate (leiding 1 - e: 1) v - >3
7 <2> sassign vKS/2 - >8
* 5 <2> voegen [t1] sK/2 toe - >6
- <1> ex-rv2sv sK/1 - >4
3 <$> gvsv (*b) s - >4
4 <$> const (IV 42) s - >5
- <1> ex-rv2sv sKRM*/1 - >7
6 <$> gvsv (*a) s - >7
Standaard teruggeven is top-down, zo theyre niet in uitvoeringsorde. Deze vorm wijst op de manier de stapel wordt gebruikt om uitdrukkingen te ontleden en te evalueren; voeg werkt onder de twee voorwaarden onder het in de boom toe.
Nullops verschijnt ex -ex-opname, waar opname op is die weg door perl is geoptimaliseerd. Theyre toonde met een opeenvolging-aantal van -, omdat zij niet (zij verschijnen niet in vorig voorbeeld) worden uitgevoerd, theyre hier gedrukt omdat zij op wijzen ontleden.
De pijl richt aan het opeenvolgingsaantal volgende op; theyre binnen getoond niet - exec wijze, om duidelijke redenen.
Merk op dat omdat dit het teruggeven op een non-threaded perl werd gedaan, PADOPs in de vorige voorbeelden nu SVOPs is, en wat (maar niet allen) zijn van de vierkante haakjes vervangen door ronde degenen. Dit is een subtiele eigenschap om wat visueel onderscheid te verstrekken tussen het teruggeven op ingepast en ontrafeld perls.
14
Programmering - Bibliotheken
Perl Artistic
Papegaai:: OpTrans is een module Perl die Ops aan de Code van C kan omzetten.
Papegaai:: OpTrans is abstract superclass voor de Papegaai op aan de transformaties van C. Elke transformatie bevat diverse beetjes van informatie nodig om de code van C te produceren, en leidt tot een verschillend type van looppaslijn. De methodes bepaalden leverings hier diverse standaardwaarden en gedrag gemeenschappelijk voor alle transformaties.
De subklassehiërarchie is als volgt:
OpTrans
|_______________________
| | |
C Gecompileerde CGoto
| |
CPrederef |
| | |
| |_______|
| |
CSwitch CGP
De Methodes van de klasse
nieuw ()
Keert een nieuwe instantie terug.
De Methodes van de instantie
prefix ()
Keert de prefix standaard van Parrot_ terug.
Gebruikt door Papegaai:: Ops func_name () aan individuate op functienamen.
achtervoegsel ()
Uitgevoerd in subklassen om een achtervoegsel terug te keren waarmee aan individuate veranderlijke namen. Deze standaardimplementatie keert een leeg koord terug.
bepaalt ()
Uitgevoerd in subklassen om de vereiste #definemacro's van C terug te keren.
opsarraytype ()
Keert het type voor de serie van opcodes terug. Door zijn gebrek hier gebruikt een serie opcode_t, maar de prederef runops kern een serie van void* om zijn knappe trucs te doen.
core_type ()
Uitgevoerd in subklassen die het type van kern terug te keren door de transformatie wordt gecre
Papegaai:: OpTrans is abstract superclass voor de Papegaai op aan de transformaties van C. Elke transformatie bevat diverse beetjes van informatie nodig om de code van C te produceren, en leidt tot een verschillend type van looppaslijn. De methodes bepaalden leverings hier diverse standaardwaarden en gedrag gemeenschappelijk voor alle transformaties.
De subklassehiërarchie is als volgt:
OpTrans
|_______________________
| | |
C Gecompileerde CGoto
| |
CPrederef |
| | |
| |_______|
| |
CSwitch CGP
De Methodes van de klasse
nieuw ()
Keert een nieuwe instantie terug.
De Methodes van de instantie
prefix ()
Keert de prefix standaard van Parrot_ terug.
Gebruikt door Papegaai:: Ops func_name () aan individuate op functienamen.
achtervoegsel ()
Uitgevoerd in subklassen om een achtervoegsel terug te keren waarmee aan individuate veranderlijke namen. Deze standaardimplementatie keert een leeg koord terug.
bepaalt ()
Uitgevoerd in subklassen om de vereiste #definemacro's van C terug te keren.
opsarraytype ()
Keert het type voor de serie van opcodes terug. Door zijn gebrek hier gebruikt een serie opcode_t, maar de prederef runops kern een serie van void* om zijn knappe trucs te doen.
core_type ()
Uitgevoerd in subklassen die het type van kern terug te keren door de transformatie wordt gecre
15
Programmering - Bibliotheken
Perl Artistic
B:: De vlaggen is een module Perl die vriendschappelijkere vlaggen voor B. verstrekt.
SYNOPSIS
gebruik B:: Vlaggen;
druk B:: main_root->flagspv;
druk B:: main_root->privatepv;
druk $some_b_sv_object->flagspv;
Door gebrek, zal $foo->flags wanneer overgegaan een voorwerp in de klasse van B een aantal vrij zonder betekenis veroorzaken, men door de Perl broncode zou moeten kruipen om om het even wat te doen nuttig waarmee.
Deze module voegt flagspv aan de klassen van SV en op en privatepv aan de op klassen toe, dat hen gemakkelijker maken te begrijpen.
Het waarschuwen: Deze die module is niet compatibel systeem met om het even welke versie van Perl wordt gewaarborgd onder 5.7.0; nochtans, houdt van Identiteitskaart het zo compatibel te maken, zodat als het er niet in slaagt te compileren, me posten. Theres waarschijnlijk een #ifdef I behoefte ergens toe te voegen…
SYNOPSIS
gebruik B:: Vlaggen;
druk B:: main_root->flagspv;
druk B:: main_root->privatepv;
druk $some_b_sv_object->flagspv;
Door gebrek, zal $foo->flags wanneer overgegaan een voorwerp in de klasse van B een aantal vrij zonder betekenis veroorzaken, men door de Perl broncode zou moeten kruipen om om het even wat te doen nuttig waarmee.
Deze module voegt flagspv aan de klassen van SV en op en privatepv aan de op klassen toe, dat hen gemakkelijker maken te begrijpen.
Het waarschuwen: Deze die module is niet compatibel systeem met om het even welke versie van Perl wordt gewaarborgd onder 5.7.0; nochtans, houdt van Identiteitskaart het zo compatibel te maken, zodat als het er niet in slaagt te compileren, me posten. Theres waarschijnlijk een #ifdef I behoefte ergens toe te voegen…
16
Programmering - Bibliotheken
Perl Artistic
B:: TerseSize is een module Perl die informatie over ops en hun (geschatte) grootte drukt.
SYNOPSIS
perl - MO=TerseSize [, OPTIES] foo.pl
B:: Grootte en B:: De modules van TerseSize proberen om de grootte van de codes van Perl te meten op. De output van B:: TerseSize is gelijkaardig aan dat van B:: Bruusk, maar omvat de grootte van elke op in de boom en PADLIST (subroutine lexicale variabelen). De module kan enkel als andere compiler worden in werking gesteld backends of via Apache worden gebruikt:: Status (versie 2.02 en hoger).
Als Apache:: De optie van StatusTerseSize van de status wordt toegelaten, zal er een hoofd toegevoegd menupunt, het „Gebruik van het Geheugen“ zijn. Het klikken op deze verbinding zal B: veroorzaken: TerseSize om een samenvatting van het gebruik van het pakketgeheugen te veroorzaken. Deze samenvatting kan een tijdje aan opbrengst vrij nemen, aangezien elke de syntaxisboom van de pakketsubroutine zal worden gelopen, optellend de informatie. Deze informatie zal worden in het voorgeheugen ondergebracht, zodat binnen lopend httpd - X (niet-zichvertakt wijze) is een goede keus.
Wanneer het doorbladeren van Apache:: De status „de Stortplaats van de Lijst van het Symbool“, zal een verbinding van het Geheugen „van het Gebruik“ bij de bodem van elke pagina zijn. Deze samenvattingen omvatten ook metingen van pakket globale variabelen.
Apache:: De lijstbrowser zal van het statussymbool ook een optie verstrekken om een subroutineboom samen met de andere subroutineopties te dumpen.
SYNOPSIS
perl - MO=TerseSize [, OPTIES] foo.pl
B:: Grootte en B:: De modules van TerseSize proberen om de grootte van de codes van Perl te meten op. De output van B:: TerseSize is gelijkaardig aan dat van B:: Bruusk, maar omvat de grootte van elke op in de boom en PADLIST (subroutine lexicale variabelen). De module kan enkel als andere compiler worden in werking gesteld backends of via Apache worden gebruikt:: Status (versie 2.02 en hoger).
Als Apache:: De optie van StatusTerseSize van de status wordt toegelaten, zal er een hoofd toegevoegd menupunt, het „Gebruik van het Geheugen“ zijn. Het klikken op deze verbinding zal B: veroorzaken: TerseSize om een samenvatting van het gebruik van het pakketgeheugen te veroorzaken. Deze samenvatting kan een tijdje aan opbrengst vrij nemen, aangezien elke de syntaxisboom van de pakketsubroutine zal worden gelopen, optellend de informatie. Deze informatie zal worden in het voorgeheugen ondergebracht, zodat binnen lopend httpd - X (niet-zichvertakt wijze) is een goede keus.
Wanneer het doorbladeren van Apache:: De status „de Stortplaats van de Lijst van het Symbool“, zal een verbinding van het Geheugen „van het Gebruik“ bij de bodem van elke pagina zijn. Deze samenvattingen omvatten ook metingen van pakket globale variabelen.
Apache:: De lijstbrowser zal van het statussymbool ook een optie verstrekken om een subroutineboom samen met de andere subroutineopties te dumpen.
17
Programmering - Bibliotheken
Perl Artistic
B:: De klasse van XPath kan optrees Perl met syntaxis zoeken XPath.
SYNOPSIS
Perl vertegenwoordigt intern programma's als boom van opcodes. Om een programma uit te voeren, loopt het deze boom, uitvoerend elke handeling aangezien het het ontmoet. De familie van B van modules staat u toe om (en in sommige gevallen, manipuleren) dit optree op programma's te onderzoeken zelfs aangezien zij lopen.
B:: XPath staat u toe om syntaxis te gebruiken XPath ops in optree te selecteren.
gebruik B:: XPath;
mijn $node = B:: XPath->fetch_root (&some_function);
mijn $root = B:: XPath->fetch_main_root ();
# vondst alle globale scalaire toegangen
mijn @globals = $root->match (//gvsv);
# vondst alle globale scalaire toegangen binnen some_function () genoemde $bob
mijn @bobs = $node->match (//gvsv [@NAME= " loodje "]);
De Methodes van de klasse
Er zijn twee methodes om uw gelijke te gebruiken te beginnen; allebei plaatsen de wortel van de boom aan onderzoek. Theres ook een aardige helpermethode youll gebruikt waarschijnlijk nooit tenzij u een insect vindt.
fetch_root ($subref)
Deze methode keert B terug:: XPath:: Het voorwerp van de knoop bij de wortel van optree voor de subroutineverwijzing. Alle gelijken die op deze knoop worden uitgevoerd zullen deze tak van optree naar de aanpassing van knopen zoeken.
fetch_main_root ()
Deze methode keert B terug:: XPath:: Het voorwerp van de knoop bij de wortel van het programma. Gebruik dit om uw volledig programma (minstens, het deel van het buiten om het even welke bepaalde subroutine) te zoeken.
find_op_class ($op)
Gezien B:: op of het nakomelingsvoorwerp, keren de naam van aangewezen B terug:: XPath:: De subklasse van de knoop om te gebruiken te verpakken dat op zodat B:: XPath kan het geschikt manipuleren.
SYNOPSIS
Perl vertegenwoordigt intern programma's als boom van opcodes. Om een programma uit te voeren, loopt het deze boom, uitvoerend elke handeling aangezien het het ontmoet. De familie van B van modules staat u toe om (en in sommige gevallen, manipuleren) dit optree op programma's te onderzoeken zelfs aangezien zij lopen.
B:: XPath staat u toe om syntaxis te gebruiken XPath ops in optree te selecteren.
gebruik B:: XPath;
mijn $node = B:: XPath->fetch_root (&some_function);
mijn $root = B:: XPath->fetch_main_root ();
# vondst alle globale scalaire toegangen
mijn @globals = $root->match (//gvsv);
# vondst alle globale scalaire toegangen binnen some_function () genoemde $bob
mijn @bobs = $node->match (//gvsv [@NAME= " loodje "]);
De Methodes van de klasse
Er zijn twee methodes om uw gelijke te gebruiken te beginnen; allebei plaatsen de wortel van de boom aan onderzoek. Theres ook een aardige helpermethode youll gebruikt waarschijnlijk nooit tenzij u een insect vindt.
fetch_root ($subref)
Deze methode keert B terug:: XPath:: Het voorwerp van de knoop bij de wortel van optree voor de subroutineverwijzing. Alle gelijken die op deze knoop worden uitgevoerd zullen deze tak van optree naar de aanpassing van knopen zoeken.
fetch_main_root ()
Deze methode keert B terug:: XPath:: Het voorwerp van de knoop bij de wortel van het programma. Gebruik dit om uw volledig programma (minstens, het deel van het buiten om het even welke bepaalde subroutine) te zoeken.
find_op_class ($op)
Gezien B:: op of het nakomelingsvoorwerp, keren de naam van aangewezen B terug:: XPath:: De subklasse van de knoop om te gebruiken te verpakken dat op zodat B:: XPath kan het geschikt manipuleren.
18
Programmering - Bibliotheken
Perl Artistic
Zon:: Solaris:: Het voorrecht is een interface Perl aan Voorrechten.
SYNOPSIS
gebruiks Zon:: Solaris:: Voorrecht qw (: ALLE);
Deze module verstrekt omslagen voor de op voorrechtbetrekking hebbende systeem en bibliotheekvraag. op voorwaarde dat ook constanten van de diverse op voorrechtbetrekking hebbende kopballen en dynamisch geproduceerde constanten voor alle voorrechten en voorrechtreeksen zijn.
Functies
getppriv ($which)
Deze die functie keert de reeks van het procesvoorrecht door $which wordt gespecificeerd terug.
setppriv ($op, $which, $set)
Deze die functie wijzigde de voorrechtreeks door $which in wordt gespecificeerd zoals gespecificeerd door $op en $set argumenten. Als $op PRIV_ON is worden de voorrechten in $set toegevoegd aan de gespecificeerde reeks; als $op PRIV_OFF is, worden de voorrechten in $set verwijderd uit de gespecificeerde reeks; als $op PRIV_SET is, wordt de gespecificeerde reeks gemaakt aan $set gelijk.
getpflags ($flag)
Keert de waarde bijbehorend met proces $flag of undef op fout terug. De mogelijke waarden voor $flag zijn PRIV_AWARE en PRIV_DEBUG.
setppflags ($flag, $val)
Plaatst de procesvlag $flag aan $val.
priv_fillset ()
Dit keert een nieuw die voorrecht terug met alle geplaatste voorrechten wordt geplaatst.
priv_emptyset ()
Dit keert een nieuwe lege voorrechtreeks terug.
priv_isemptyset ($set)
Deze functie keert terug of $set of niet leeg is.
priv_isfullset ($set)
Deze functie keert terug of $set of niet volledig is.
priv_isequalset ($a, $b)
Deze functie keert terug of de reeksen $a en $b gelijk zijn.
priv_issubset ($a, $b)
Deze functie keert terug of de reeks $a een ondergroep van $b. is.
priv_ismember ($set, $priv)
Deze functie keert terug of $priv een lid van $set is.
priv_ineffect ($priv)
Deze functie keerde terug of $priv in de proces efficiënte reeks is.
priv_intersect ($a, $b)
Deze functie keert een nieuw geplaatst voorrecht terug dat de kruising van $a en $b is
priv_union ($a, $b)
Deze functie keert een nieuw geplaatst voorrecht terug dat de unie van $a en $b is
priv_inverse ($a)
Deze functie keert een nieuw geplaatst voorrecht terug dat het omgekeerde van $a. is.
priv_addset ($set, $priv)
Dit functon voegt het voorrecht $priv aan $set toe.
priv_copyset ($a)
Deze functie keert een exemplaar van het voorrecht vastgestelde $a. terug.
priv_delset ($set, $priv)
Deze functie verwijdert het voorrecht $priv uit $set.
SYNOPSIS
gebruiks Zon:: Solaris:: Voorrecht qw (: ALLE);
Deze module verstrekt omslagen voor de op voorrechtbetrekking hebbende systeem en bibliotheekvraag. op voorwaarde dat ook constanten van de diverse op voorrechtbetrekking hebbende kopballen en dynamisch geproduceerde constanten voor alle voorrechten en voorrechtreeksen zijn.
Functies
getppriv ($which)
Deze die functie keert de reeks van het procesvoorrecht door $which wordt gespecificeerd terug.
setppriv ($op, $which, $set)
Deze die functie wijzigde de voorrechtreeks door $which in wordt gespecificeerd zoals gespecificeerd door $op en $set argumenten. Als $op PRIV_ON is worden de voorrechten in $set toegevoegd aan de gespecificeerde reeks; als $op PRIV_OFF is, worden de voorrechten in $set verwijderd uit de gespecificeerde reeks; als $op PRIV_SET is, wordt de gespecificeerde reeks gemaakt aan $set gelijk.
getpflags ($flag)
Keert de waarde bijbehorend met proces $flag of undef op fout terug. De mogelijke waarden voor $flag zijn PRIV_AWARE en PRIV_DEBUG.
setppflags ($flag, $val)
Plaatst de procesvlag $flag aan $val.
priv_fillset ()
Dit keert een nieuw die voorrecht terug met alle geplaatste voorrechten wordt geplaatst.
priv_emptyset ()
Dit keert een nieuwe lege voorrechtreeks terug.
priv_isemptyset ($set)
Deze functie keert terug of $set of niet leeg is.
priv_isfullset ($set)
Deze functie keert terug of $set of niet volledig is.
priv_isequalset ($a, $b)
Deze functie keert terug of de reeksen $a en $b gelijk zijn.
priv_issubset ($a, $b)
Deze functie keert terug of de reeks $a een ondergroep van $b. is.
priv_ismember ($set, $priv)
Deze functie keert terug of $priv een lid van $set is.
priv_ineffect ($priv)
Deze functie keerde terug of $priv in de proces efficiënte reeks is.
priv_intersect ($a, $b)
Deze functie keert een nieuw geplaatst voorrecht terug dat de kruising van $a en $b is
priv_union ($a, $b)
Deze functie keert een nieuw geplaatst voorrecht terug dat de unie van $a en $b is
priv_inverse ($a)
Deze functie keert een nieuw geplaatst voorrecht terug dat het omgekeerde van $a. is.
priv_addset ($set, $priv)
Dit functon voegt het voorrecht $priv aan $set toe.
priv_copyset ($a)
Deze functie keert een exemplaar van het voorrecht vastgestelde $a. terug.
priv_delset ($set, $priv)
Deze functie verwijdert het voorrecht $priv uit $set.
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above gebaseerd op search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed
Mijn software
U heeft niet alle software opgeslagen. Klik op 'Opslaan' naast elke software op te slaan op uw software-mand
Populaire tags
Gesponsorde links
Contact hebben | Submit Software | advertentie | Termen en voorwaarden | Privacybeleid | Uitgever | Categorie | Geavanceerd zoeken
Downloaden 2008 - Alle rechten voorbehouden
