2013-07-09 8 views
11

Nur Lesen dieser Seite: https://github.com/book/perlsecret/blob/master/lib/perlsecret.pod, und war wirklich überrascht, mit den Aussagen wie:Perl-Operatoren werden "entdeckt" und nicht entworfen?

Discovered by Philippe Bruhat, 2012. 
Discovered by Abigail, 2010. (Alternate nickname: "grappling hook") 
Discovered by Rafaël Garcia-Suarez, 2009. 
Discovered by Philippe Bruhat, 2007. 

und so weiter ...

Die oben genannten Operatoren sind ENTDECKT, so dass sie nicht beabsichtigt per Perl-Design?

bedeuten Das ist, als hier besteht die Möglichkeit, als Perl haben Schweller einige zufällige Zeichenfolgen was in der richtigen Reihenfolge etwas Nützliches wie der ()x!! „Operator“ zu tun?

Ist hier eine andere Sprache, was haben entdeckt operatos?

+1

C, C++, Perl und andere haben die [geht zu Operator] (http://stackoverflow.com/q/1642028/168657) – mob

Antwort

13

Von der Seite, die Sie verknüpft:

Sie wie Operatoren in dem Sinne, dass diese Perl-Programmierer sehen, wie sie oft genug, um sie, ohne darüber nachzudenken, ihre kleinere Teile zu erkennen, und fügen Sie sie schließlich zu ihre Werkzeugkiste. Und sie sind wie Geheimnisse in dem Sinne, dass sie von ihrem zukünftigen Benutzer entdeckt werden müssen (oder von einem anderen Programmierer gesendet werden), weil sie nicht explizit dokumentiert sind.

Das heißt, sie sind nicht wirklich ihre eigenen Operatoren, aber sie bestehen aus kleineren Operatoren zusammengesetzt, um etwas kombiniert zu tun.

Zum Beispiel nummeriert der Venus-Operator (0+ oder +0) das Objekt links oder rechts. Das ist das Hinzufügen von Null in irgendeiner Form, "geheimer" Operator oder nicht.

+11

"Geheime Operatoren sind nicht wirklich geheim, und sie sind nicht tatsächlich Betreiber entweder Der Perl-Parser erkennt sie nicht genau, und niemand versucht, sie vor dir zu verbergen. " –

4

Perl hat eine Reihe von Operatoren, die spezielle Dinge tun, sowie Zeichen, die spezielle Dinge tun, wenn sie in einem bestimmten Kontext interpretiert werden. Anstatt dass diese tatsächliche "Operatoren" sind (d. H. Nicht explizit von dem Perl-Parser erkannt werden), denken Sie an sie als Kombinationen bestimmter Funktionen/Operationen. Zum Beispiel ()X!!, der als "Enterprise" -Operator bekannt ist, besteht aus (), die eine Liste ist, gefolgt von x, die ein Wiederholungsoperator ist, gefolgt von !! (der "bang bang" -Operator), der eine boolesche Konvertierung durchführt. Dies ist einer der Gründe, warum Perl so ausdrucksstark ist.

Verwandte Themen