Warum ist Perl die beste Wahl für die meisten Stringmanipulationsaufgaben?
Ich habe gehört, dass Perl ist die Sprache für die string-manipulation (und Linie Lärm ;). Kann jemand die Beispiele und die Vergleiche mit anderen language(s) zeigen mir, warum?
InformationsquelleAutor der Frage RCIX | 2009-09-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist sehr subjektiv, also ich würde nicht sagen, dass Perl die beste Wahl, aber es ist sicherlich eine gültige Wahl für string-manipulation. Andere alternativen sind Tcl, Python, AWK, etc.
Ich, wie Perl ' s Fähigkeiten, weil es hat eine hervorragende Unterstützung (besser als POSIX-wie bereits im Kommentar), für die schnelle regexs und die implizite Variablen macht es einfach zu tun, basic-string Knirschen mit sehr wenig code.
Wenn Sie eine *nix-hintergrund eine Menge von dem, was Sie bereits wissen, gilt für Perl als auch, was macht es relativ leicht zu Holen, für eine Menge Leute.
InformationsquelleAutor der Antwort Brian Rasmussen
Perl -> Practical Extraction and Reporting Language
Perl Stärke(wenn es um string-Verarbeitung) liegt darin, dass es sehr mächtig Die engine für reguläre Ausdrücke.
Weil dieser es gibt viele Menschen, die auf dem Gebiet der Bioinformatik mit Perl als Ihre
wichtigstes Werkzeug, daher die große Zahl der Beiträge über BioPerl auf PerlMonks . In der Bioinformatik werden Sie mit Zeichenfolgen zu arbeiten viel , Sie nennt Sie "Sequenzen"(ich weiß nicht viel über diese).
Perlmonks.org ist das Herz der Perl-community, schauen Sie sich die immense Anzahl der Treffer
wenn Sie suchen, für site:perlmonks.org regex 20,000 trifft
Sie können nicht ignorieren, die schiere Anzahl der Module auf CPAN:
Dies belegt sehr deutlich, dass Perl ist eine sehr mächtige Sprache, wenn es um string-Verarbeitung.
Also, wenn Sie wollen, um einige string-Verarbeitung und-bist du mit Perl, du hast es erfasst 🙂
InformationsquelleAutor der Antwort xxxxxxx
Adresse den zweiten Teil Ihrer Frage: Perl-Ruf für die Leitung Rauschen kommt von 4 Arten von Menschen:
Übermäßig clever (für Ihre eigenen guten) Hacker (oder manchmal auch nur hacks), die Wert auf cleverness und Angeberei über die Lesbarkeit zu verbessern. "Wenn es schwierig war zu schreiben, sollte es schwer zu Lesen sein" ist NICHT nur eine mythische Haltung.
Menschen, die nicht weiß, gute software-Entwicklung, wenn es Sie getroffen über den Kopf mit einem cluebat. Wie Leute, die sparen ein paar Zeichen in einem Programm mit
$_
statt einer benannten variable. In einer verschachtelten Rahmen. Oder noch nie davon gehört Kommentare. Oder selbst dokumentieren-IDS. Oder whitespace.Leute, die denken, dass software-Entwicklung == code golf. Mehr ernsthaft, dass die weniger die Anzahl der Zeichen in den code, der leichter lesbar ist, weil Sie missverstehen, was "Knappheit" bedeutet im code.
(HINWEIS: ersten 2 Sätze schließen sich nicht gegenseitig aus)
Menschen, die von code/hack in perl (z.B. Systemadministratoren), die haben sehr wenig training, Erfahrung oder Anreiz zu tun, die software-Entwicklung. E. g. der Anteil der Personen mit Hilfe von Perl, die es tun, quick-and-dirty-hacks mit schlechtem Stil und schlechter code-Qualität ist wahrscheinlich höher, als, sagen wir Python.
Nur für Referenz, 80% der schrecklich Perl "- code" in meine $Arbeit fällt unter diese - es wurde geschrieben von Finanzanalysten, die sind schlau genug, um abholen ein Perl-Buch und einige ältere Skripte, Klon aus einem Skript, dass das macht, was Unternehmen brauchen, ist, haben und keine CS/Programmierung im hintergrund Gedanken machen, wie Sie lesbarer/wartbarer Ihr code hat.
In anderen (und weniger abfälligen Worten, Sie können schreiben, schön und unglaublich gut lesbar und leicht zu pflegen software in Perl. Es hängt alles davon ab, wer tut das schreiben, was Ihre Prioritäten und Kompetenzen sind. Auch, genauso wie mit jeder anderen SpracheSie können schreiben, eine elende schreiben-nur mit Experimentieren.
Den Unterschied zu anderen Sprachen ist, dass sehr oft, die schreiben-onlyness von Sprach Durcheinander, wenn Sie fertig sind, in Perl, in der Tat bestehen sehr hohe Dichte an nicht-Buchstaben-Zeichen (sygils und Sonderzeichen in schlecht geschriebenen RegExes). Diese hohe Dichte kann in der Tat asymptotisch Ungefähre Linie Lärm.
InformationsquelleAutor der Antwort DVK
Weil Es ist, was ist mit perl gemacht. Da Perl ist expressiv, kraftvoll und schnell. Ich habe geschlagen viele Male spezialisierte Produkte mit kleinen und dirty-Skript in perl geschrieben, in wenigen Minuten. Zum Beispiel, outer join und die großen join vs. MySQL (nur weil Sie nicht tun können, merge join), ETL-Verarbeitung vs. Java Hadoop (weil ich Jahre Erfahrung, es zu schreiben, effektiv und perl-IO-layer ist einfach toll) und so und so.
InformationsquelleAutor der Antwort Hynek -Pichi- Vychodil
Es ist eine sehr subjektive Frage. Vielleicht liegt die wahre Antwort ist, dass Perl hat eine schöne syntax (inkl. die regex-syntax), was macht die Menschen wollen, es zu unterzeichnen hohes Lob gegenüber anderen Sprachen? IMHO ist jede Sprache, die unterstützt eine reiche regex-syntax wäre considerablly mächtig auf string-Manipulationen.
InformationsquelleAutor der Antwort Gregory
Kinder in diesen Tagen! Zurück in den Tag, alles, was wir hatten, war SNOBOL -- und es hat uns gefallen! Versuchen Sie es irgendwann...man weiß ja nie, möchten Sie vielleicht etwas anständiges zu fallen wieder auf, wenn das Perl-fad-seinen Lauf!
InformationsquelleAutor der Antwort Jim Lewis
Perl wird Häufig für die string-manipulation-Aufgaben als auch die string-manipulation-API ist einfach zu erlernen. Und auch seine regex ist weit verbreitet. Es wurde im Einsatz für eine sehr lange Zeit und jedermann mit einem Unix-background abholen würde perl sehr einfach. Historisch, perl entwickelt wurde, in den späten 80 ' s für die Verarbeitung des Berichts Aufgaben und war "ursprünglich" entwickelt für Aufgaben zur Verarbeitung von text. Also bis jetzt, der trend setzt sich Fort, wie jemand mit einem string-manipulation task-oder text-Verarbeitung Aufgabe würde sich für perl die erste Wahl. Seine nicht, dass andere Sprachen wie python sind nicht bis zu der Aufgabe, aber perl ist beliebt in diesem Bereich.
InformationsquelleAutor der Antwort Zaki
Ich mag Perl sehr, schreiben Bücher darüber, die Veröffentlichung einer Zeitschrift, und so weiter. Ich glaube nicht, ich würde immer sagen, es ist die beste Sprache nichts zu tun. Eine Menge davon hat zu tun mit der Aufgabe, die Sie tun müssen. Für viele string-Verarbeitung Aufgaben, ETL, Daten-Bereinigung, und so in, Perl ist eine sehr starke und fähige Sprache. Sie würde nicht viel Mühe machen einfache Aufgaben.
Dein Kommentar klingt, wie es stammt aus den frühen 1990er Jahren, obwohl, wenn der rest der Welt noch nicht aufgeholt. Viele dynamische Sprachen sind jetzt bis zu Aufgabe, so dass Sie nicht haben, um zwischen Sprachen zu wechseln. Wenn Sie sich entscheiden, Perl und Probleme, es gibt viele Leute hier, die bereit sind zu helfen, und nicht uns alle Schuld, wenn Sie wählen Sie etwas anderes. 🙂
InformationsquelleAutor der Antwort brian d foy
Am Anfang, Perl wurde entwickelt für eine einfache Verarbeitung der Berichte und der Umgang mit text-Dateien, so hat es einen sehr starken REGEX-Unterstützung. Die meisten der Informationen über REGEX finden Sie im perldoc.
InformationsquelleAutor der Antwort andreyv
Ich bin nicht einverstanden, dass Perl ist die beste Sprache für die text-Verarbeitung. Einfache Dinge sind einfach; ersetzt foo mit bar:
Schwieriger die Dinge sind nicht einfach, obwohl. Blick auf Daten::SExpressionzum Beispiel. Es ist eine Menge code, um etwas sehr einfaches machen.
Eine ähnliche Implementierung in Haskell mit PArrow in etwa so aussieht:
Just sayin'. Perl ist nicht das Ende-all-sein-all-text-manipulation. Es gibt viele Gründe, sich lieber Perl anderen Sprachen, aber das Parsen ist nicht einer von Ihnen.
InformationsquelleAutor der Antwort jrockway
Perl wurde die gehe-zu-Sprache für eine lange Zeit. Das problem ist, es kann ziemlich chaotisch und schwierig zu pflegen (manche Leute können schreiben, Perl, verhindert dies, aber es ist sehr einfach geschrieben hässlichen code). Ich würde nicht sagen, Sie zu vermeiden Perl, aber viele wurden auf einige moderne alternativen.
Ich würde empfehlen, die lernen eines der neueren Script-Sprachen wie Python oder Ruby. Beide funktionieren sehr gut für Ihre Bedürfnisse, und können problemlos zu bewältigen schwieriger Aufgaben später auf. Sie sind beide ganz nett, um zu arbeiten, nachdem Sie geschrieben C und Perl für so lange.
Kurz, Perl wäre ein guter hammer für diesen Nagel. Python und Ruby würden nail-guns.
InformationsquelleAutor der Antwort MattG