was kann nur perl?
jobo
- perl
Hallo,
gibt es ein Segment, in dem es "Sinn" machen würde, mit PERL der Sprache oder ihrer Bibliotheken halber zu programmieren? Ich meine jetzt weniger historisch bedingt oder weil eine Programmierer (oder eine Gruppe) das gut beherrscht, sondern aus wirtschaftlichen oder programmiertechnischen Gründen. Ich weiß, das so eine Frage immer gern zu einer Liebhaberdiskussion werden kann, die ins weltanschauliche driftet (;-).
Gruß
jobo
Hallo,
gibt es ein Segment, in dem es "Sinn" machen würde, mit PERL der Sprache
oder ihrer Bibliotheken halber zu programmieren?
Ja.
Ich meine jetzt weniger historisch bedingt oder weil eine Programmierer (oder eine Gruppe) das gut beherrscht, sondern aus wirtschaftlichen oder programmiertechnischen Gründen.
Und ich meine das 'Ja' so, wie das aus der Sicht eines Programmierers bewertet wird. Es gibt sogar mindestens ein Segment, in dem es Sinn macht, für Perl eigene Bibliotheken zu schreiben.
Ich weiß, das so eine Frage immer gern zu einer Liebhaberdiskussion werden kann, die ins weltanschauliche driftet (;-).
Nunja, manche reden über Perl und Andere programmieren mit Perl ;-)
Hotti
Hallo jobo!
gibt es ein Segment, in dem es "Sinn" machen würde, mit PERL der Sprache oder ihrer Bibliotheken halber zu programmieren? Ich meine jetzt weniger historisch bedingt oder weil eine Programmierer (oder eine Gruppe) das gut beherrscht, sondern aus wirtschaftlichen oder programmiertechnischen Gründen. Ich weiß, das so eine Frage immer gern zu einer Liebhaberdiskussion werden kann, die ins weltanschauliche driftet (;-).
Erst heißt es Perl (nicht perl und nicht PERL - auch nicht Pearl, und Princes Titel »Diamonds and Pearls« hat nichts mit Perl zu tun, obwohl Perl einen Diamant-Operator kennt) ;)
Für's Web ist es halt eine persönliche Entscheidung, würde ich sagen. Außerhalb davon hat Perl IMHO die Nase vorn, wurde es ja nicht speziell für's Web entwickelt (was man PHP vorwerfen kann), sondern für den Einsatz auf Rechnern. vornehmlich für den Umgang mit und die Organisation von Dateien. Irgendwo habe ich gelesen, wie das Programm irgendeiner Maschine in Perl geschrieben war.
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo,
gibt es ein Segment, in dem es "Sinn" machen würde, mit PERL der Sprache oder ihrer Bibliotheken halber zu programmieren?
Der Name sagt doch schon alles: "Practical Extraction and Report Language"
Noch Fragen?
Gruß, Don P
Nur Perl hat CPAN. Die größten Bibliotheken mit den besten Dokus!
Außerdem bringt die Entscheidung für Perl viel Synergie, man sollte nicht vergessen dass PHP und Ruby im Grunde modifizierte Perldialekte sind, d.h. viele Konzepte wiederholen sich. Im Vergleich dazu ist Python ist ein anderer Planet.
Und PHP kennt nur die Webnische, Ruby ist noch zu neu.
Außerdem bringt die Entscheidung für Perl viel Synergie, man sollte nicht vergessen dass PHP und Ruby im Grunde modifizierte Perldialekte sind, d.h. viele Konzepte wiederholen sich. Im Vergleich dazu ist Python ist ein anderer Planet.
Huh? Was macht den Ruby so Perl-ähnlich? Mir fallen eigentlich nur zwei syntakische Ähnlichkeiten auf, nämlich Regexe als Teil der Syntax und die Sigils zur Benennung des Scopes von Variablen. Was ein ganz anderes Konzept ist als Perls Kontexte; letzteres finde ich eigentlich sonst nirgendwo.
Programmiertechnisch liegt für mich Rubys Message-OOP noch weiter weg von Perl; da halte ich Python schon etwas für perliger.
Hab ich was übersehen?
Huh? Was macht den Ruby so Perl-ähnlich? Mir fallen eigentlich nur zwei syntakische Ähnlichkeiten auf, nämlich Regexe als Teil der Syntax und die Sigils zur Benennung des Scopes von Variablen. Was ein ganz anderes Konzept ist als Perls Kontexte; letzteres finde ich eigentlich sonst nirgendwo.
Irgendwo am Anfang der Ruby docs steht auch das Perl Progger sich sofort wohl fühlen sollen (finds gerade nicht). Viele Builtins sind nicht nur semantisch gleich, wie z.B. flip-flop mit "..".
Larry Wall bezeichnet auch Ruby als schärften Konkurenten in der Perl Nische.
Für mich ist Ruby ein Art OO-Perl mit orthogonalerem Syntax und ohne context. Der andere Syntax stört den Perler nicht lange der ist sowieso an TIMTOWTDI gewöhnt
[href=http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-perl/]
Hallo LanX,
Für mich ist Ruby ein Art OO-Perl mit orthogonalerem Syntax und ohne context. Der andere Syntax stört den Perler nicht lange der ist sowieso an TIMTOWTDI gewöhnt
Das ist ja interessant und hilft auch beim Grundverständnis. PHP und Ruby haben sich wohl klar an Perl orientiert, sprich, Dinge übernommen, die sinnvoll erschienen und andere ergänzt, die fehlten. Deshalb würde ich mal meinen dass Ruby mit Rails und PHP mit Zend (oder einem anderen Framework) besonders im Webbereich bei Neuaufbauten vielleicht sogar mehr Sinn macht als Perl.
http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-perl/ - so geht der Link auch (;-).
Frage für unsere Compunter-Ag (wir habe auch eine Grafik mit einer Übersicht über alle Computersprachen an der Wand) wäre eben eher auf der Metaebene: wenn eben nicht (weil schon in einem Institut viele Programme damit laufen oder in einer Firma) mit Perl gearbeitet wird, in welchem Bereich (außer bei der Dateiverwaltung) wäre Perl anderen Sprachen wie Python, C oder PHP/Ruby vorzuziehen. (Jetzt gibts Haue, weil ich PHP mit Slash an Ruby gedongelt hab. Ich find ja auf den ersten Blick Perl recht PHP-ähnlich, bzw. umgekehrt. Ruby kommt ja eher wie Javascript daher, oder eine Mischung. In unserer Grafik an der Wand werden auch die Einflüsse mit Pfeilen dargestellt).
Gruß
jobo
in welchem Bereich (außer bei der Dateiverwaltung) wäre Perl anderen Sprachen wie Python, C oder PHP/Ruby vorzuziehen.
Das kann man so nicht beantworten, bei solchen Grafiken kommen nur blödsinnige BWLer SLides bei raus.
Sorry aber nee ...
Die meisten Leute wollen eine Kombi von "Disziplinen" und die Sinnhaftigkeit einer Sprache ergibt sich halt nicht aus der Summe der Einzelperformance, sondern auch aus dem Entwicklungspotential, vorhandenen Bibliotheken und Dynamik der Community.
Erst dann kann man den besten Return-of-Investment in eine Sprache berechnen.
Wenn du NUR kleine Webanwendungen machst ist PHP wahrscheinlich die optimale Wahl weil nirgends so wenig für einen Server bezahlt werden muss und Templating eingebaut ist. Die Masse machts dann halt und so hat Perl gegen PHP an standing verloren.
PHP ist aber "everywhere else" vernachlässigbar.
Andererseits kommst du z.B. im Sysadminbereich nicht an Perl vorbei aber Python kommt auch da öfter vor...
Meine Entscheidung war auf Perl zu setzen mir "fehlende" Features aus CPAN zu holen, und mir die Investitionssicherheit aus der Dynamik der riesigen Perl-Community zu ziehen und gleichzeitig Fallschirme für Perl6 und Ruby im Gepäck zu haben.
BTW: JS wurde noch nicht erwähnt keine Sprache ist aktuell auf sovielen Plattformen present.
Hallo,
BTW: JS wurde noch nicht erwähnt keine Sprache ist aktuell auf sovielen Plattformen present.
Ja, das sagt Crockford zu Beginn eines seiner Vorträge bei yui-theatre glaub ich.
Gruß
jobo
Hallo,
BTW: JS wurde noch nicht erwähnt keine Sprache ist aktuell auf sovielen Plattformen present.
Ja, das sagt Crockford zu Beginn eines seiner Vorträge bei yui-theatre glaub ich.
Sorry, aber JS kann man nun wirklich nicht mit Perl vergleichen!
Habe hier bisher nichts geschrieben außer dem Hinweis auf den Namen PERL (_P_ractical _E_xtraction and _R_etrieval _L_anguage), und zwar deshalb, weil ich Ruby, Python und was immer eigentlich nicht kenne.
Der Name PERL sagt aber m.M.n. das wichtigste aus über die Sprache. Immer wenn es darum geht, aus irgendwie strukturierten (Text-) Daten etwas zu extrahieren, diese umzuformen oder sonstwie zu behandeln, kommt die ganze Macht von Perl zum Zug: Die mächtigen regulären Ausdrücke, I/O-Funktionen, die Kontextabhängigen Datentypen, die Einfachheit beim Befüllen und Iterieren über Arrays und Hashes usw. *Das* macht doch Perl als Sprache aus und zumindest mir ist keine andere bekannt, die Perl da "das Wasser reichen" könnte (was aber nicht viel zu bedeuten hat).
Gruß, Don P
Hallo Don!
(_P_ractical _E_xtraction and _R_etrieval _L_anguage)
Practical Extraction and Report Language
Viele Grüße aus Frankfurt/Main,
Patrick, seinen Ruf als nervenden Besserwisser verteidigend ;)
Frage für unsere Compunter-Ag (wir habe auch eine Grafik mit einer Übersicht über alle Computersprachen an der Wand) wäre eben eher auf der Metaebene: wenn eben nicht (weil schon in einem Institut viele Programme damit laufen oder in einer Firma) mit Perl gearbeitet wird, in welchem Bereich (außer bei der Dateiverwaltung) wäre Perl anderen Sprachen wie Python, C oder PHP/Ruby vorzuziehen.
Diese Frage wirst du kaum beantworten können, bzw. die Antwort muss lauten, in den Bereichen, in denen _du_ mit Perl am besten zu recht kommst.
Zumal mir nicht ganz klar ist von welchen "Bereichen" du sprichst, aber egal wo, es gibt immer auch Argumente für eine andere Sprache.
Struppi.
Hallo,
Frage für unsere Compunter-Ag (wir habe auch eine Grafik mit einer Übersicht über alle Computersprachen an der Wand) wäre eben eher auf der Metaebene: wenn eben nicht (weil schon in einem Institut viele Programme damit laufen oder in einer Firma) mit Perl gearbeitet wird, in welchem Bereich (außer bei der Dateiverwaltung) wäre Perl anderen Sprachen wie Python, C oder PHP/Ruby vorzuziehen.
Diese Frage wirst du kaum beantworten können, bzw. die Antwort muss lauten, in den Bereichen, in denen _du_ mit Perl am besten zu recht kommst.
Zumal mir nicht ganz klar ist von welchen "Bereichen" du sprichst, aber egal wo, es gibt immer auch Argumente für eine andere Sprache.
Naja, wenn im Webbereicht Ruby oder PHP eingesetzt werden, dann hat das ja u.a. den Grund, dass Ruby vielleicht mit eine durchdachten Framework daherkommt, was besser zugeschnitten ist für manchen auf Webbedürfnisse als Perl trotz CPAN. LanX meint ja, im Webadmin-Bereich kommt man an Perl nicht vorbei (oder Python). Das ja eine klare Aussage. Alles was GUIs angeht, Browser oder sonstwas, ist ja dann doch meist C, bzw. gibts nischt, was man mit C nicht genausogut könnte. Im Nicht-Web-Bereich. Außer eben einfach und mit vielen Bibliotheken im Adminbereich.
Gruß
jobo
LanX meint ja, im Webadmin-Bereich kommt man an Perl nicht vorbei (oder Python). Das ja eine klare Aussage.
Sysadmin! Außerdem muss ich mich revidieren, an Bash kommt man unter Unix nicht vorbei, wenn man es denn als "Sprache" akzeptiert.
was man mit C nicht genausogut könnte
seufz du das ist wieder so ne Aussage...
Nach dem Motto klar kann man aus Lego Wohnhäuser bauen ...
Alle hier besprochenen Scriptsprachen sind hauptsächlich in C¹ implementiert worden, was folgert nun daraus???
Hmm ... ist Java eigentlich in C realisiert?
Hallo,
Sysadmin! Außerdem muss ich mich revidieren, an Bash kommt man unter Unix nicht vorbei, wenn man es denn als "Sprache" akzeptiert.
Naja, ist es keine?
was man mit C nicht genausogut könnte
seufz du das ist wieder so ne Aussage...
Naja, mit C anzufangen, für Strings Speicher zu allozieren und dann Vergleichsfunktionen zu schreiben macht vermutlich weniger Sinn, als dann eben AWK oder Perl zu nehmen, oder?
Nach dem Motto klar kann man aus Lego Wohnhäuser bauen ...
Eben um die Frage geht es. Niemand will doch ernsthaft mit Lego (oder C) Wohnhäuser bauen.
Alle hier besprochenen Scriptsprachen sind hauptsächlich in C¹ implementiert worden, was folgert nun daraus???
Genau.
Hmm ... ist Java eigentlich in C realisiert?
Das hab ich mich auch schon mal gefragt. C ja wohl schon, bzw. gcc, oder?
Gruß
jobo
Alle hier besprochenen Scriptsprachen sind hauptsächlich in C implementiert worden, was folgert nun daraus???
Genau.
und deswegen ist die Antwort im Threadtitel einfach: Nichts!
Hallo,
und deswegen ist die Antwort im Threadtitel einfach: Nichts!
nur c kann c. klar und ohne c geht nischt.
Gruß
jobo
nur c kann c. klar
nö allerdings gilt
"Only Perl can parse Perl!"
xD LanX
Hallo,
nur c kann c. klar
nö allerdings gilt
"Only Perl can parse Perl!"
Aber der Perlparser ist in C geschrieben.
Gruß
jobo
Zumal mir nicht ganz klar ist von welchen "Bereichen" du sprichst, aber egal wo, es gibt immer auch Argumente für eine andere Sprache.
Naja, wenn im Webbereicht Ruby oder PHP eingesetzt werden, dann hat das ja u.a. den Grund, dass Ruby vielleicht mit eine durchdachten Framework daherkommt, was besser zugeschnitten ist für manchen auf Webbedürfnisse als Perl trotz CPAN.
Ja, vielleicht. Es gibt aber z.b. Catalyst und wenn du Perl als mod_perl ausführst ist es dann von der Geschwindigkeit fast unschlagbar. Insofern ist Perl im Webbereich nicht unbedingt schlechter zugeschnitten. Es kommt halt drauf an....
LanX meint ja, im Webadmin-Bereich kommt man an Perl nicht vorbei (oder Python). Das ja eine klare Aussage.
Da kenn ich mich nicht aus, aber vieles läuft, wenn was auf Linuxsystemen konfiguriert wird, in einer der beiden Sprachen. Das hat also weniger was mit "Webdamin" zu tun, als mit dem OS das auf den meisten Servern läuft.
Alles was GUIs angeht, Browser oder sonstwas, ist ja dann doch meist C, bzw. gibts nischt, was man mit C nicht genausogut könnte. Im Nicht-Web-Bereich. Außer eben einfach und mit vielen Bibliotheken im Adminbereich.
Wieso? Du kommst mit Perl/Tk oft viel schneller zum Ziel, wenn es um eine kleine Anwendung mit einer GUI geht. Diese ist dann auch noch portabel. Ich sehe hier keine generellen Vorteile einer Sprache.
Struppi.
Hallo,
Wieso? Du kommst mit Perl/Tk oft viel schneller zum Ziel, wenn es um eine kleine Anwendung mit einer GUI geht. Diese ist dann auch noch portabel. Ich sehe hier keine generellen Vorteile einer Sprache.
Aha, das wäre ja ein Vorteil, den ich bei Ansicht des kleinen Scriptes letztlich vermutet hatte. Das Ansprechen eines Fensters und Buttons via gtk funktioniert ja genaus simpel wie in der Kombi JS-Browser/DOM.
Gruß
jobo
Hi Tim
hier noch mal ein Vergleich:
"Ruby's syntax and design philosophy are heavily influenced by Perl. It has a lot of syntactic variability. Statement modifiers (if, unless, while, until, etc.) may appear at the end of any statement. Some key words are optional (the then'' in an
if'' statement for example). Parentheses may sometimes be elided in method calls. The receiver of a method may usually be elided. Many, many things are lifted directly from Perl."
http://www.softpanorama.org/Scripting/ruby.shtml
Grüße
rolf
(... uff ich bins nicht mehr gewöhnt, dass man seine posts nicht updaten kann ...)
Noch ein Fundstück, Interview mit Matz
-----------------
...
Stewart: I gather you had worked with both Perl and Python before creating Ruby. What bits of Perl did you incorporate in Ruby?
Matz: A lot. Ruby's class library is an object-oriented reorganization of Perl functionality--plus some Smalltalk and Lisp stuff. I used too much I guess. I shouldn't have inherited $_, $&, and the other, ugly style variables.
Stewart: How about Python? What aspects of that language did you try to reuse in Ruby?
Matz: Far less than Perl. But I stole a few things, like exception names. Plus I learned a lot from its code.
...
------------------
man beachte auch die Namensgebung von "Ruby" und "Perl"... (die Sprache heißt mit absicht nicht Mamba oder Chatter... ;-)
Nur Perl hat CPAN. Die größten Bibliotheken mit den besten Dokus!
Genau!
Das isses. Und Perl hat eine perldoc an die ich sogar mit meinem Editor rankomme ohne dass ich mit der Maus rumfummeln muss.
Hotti
Hallo,
Nur Perl hat CPAN. Die größten Bibliotheken mit den besten Dokus!
Außerdem bringt die Entscheidung für Perl viel Synergie, man sollte nicht vergessen dass PHP und Ruby im Grunde modifizierte Perldialekte sind, d.h. viele Konzepte wiederholen sich. Im Vergleich dazu ist Python ist ein anderer Planet.
Den Webkrempel meinte ich eigentlich nicht. Ich meine bei Ubuntu auch GUIs auf Perl-Basis in der Paketverwaltung gesichtet zu haben. "Nur" um ein paar Dateien zu handlen, das ist ja eher keine "Nische". Frage eher, ob es hie und da (durch die Biblitheken und Anbindung an grafische Oberflächen (gtk oder was auch immer)) es auch ein "Ersatz" für C (oder was weiß ich Python) ist oder das selbe genauso gut "kann".
Gruß
jobo
Den Webkrempel meinte ich eigentlich nicht. Ich meine bei Ubuntu auch GUIs auf Perl-Basis in der Paketverwaltung gesichtet zu haben. "Nur" um ein paar Dateien zu handlen, das ist ja eher keine "Nische". Frage eher, ob es hie und da (durch die Biblitheken und Anbindung an grafische Oberflächen (gtk oder was auch immer)) es auch ein "Ersatz" für C (oder was weiß ich Python) ist oder das selbe genauso gut "kann".
Wenn es um die Geschwindigkeit geht, im Vergleich zu C sicher nicht.
Aber mit Perl/Tk oder auch WxPerl kannst du RatzFatz ein GUI Anwendung schreiben. Ich denke auch, dass das eine Nische ist in der Perl unschlagbar ist, in der Kombination mit Shellskripten, dem grossen Fundus auf CPAN und evtl. einer Webandwendung, kommst du mit keiner anderen Sprache schneller an's Ziel.
Struppi.
Hallo,
Aber mit Perl/Tk oder auch WxPerl kannst du RatzFatz ein GUI Anwendung schreiben. Ich denke auch, dass das eine Nische ist in der Perl unschlagbar ist, in der Kombination mit Shellskripten, dem grossen Fundus auf CPAN und evtl. einer Webandwendung, kommst du mit keiner anderen Sprache schneller an's Ziel.
Ja, die kleine Patientenverwaltung Perl/gtk eines Schülers mit Eingabemaske war eher aus der Not geboren, weil für c auf dem Schulpc die gtk-Bibliotheken fehlten. Aber die Anwendung ist auch für einen Nicht-Perl-Kenner eigentlich überraschend schnell verständlich (mir kommt da dann die Ähnlichkeit mit PHP auch zugute im Verständnis).
Gruß
jobo
Die beiden wichtigsten "all-purpose" Script-Sprachen sind IMHO Perl und Python, während Ruby aufholt und TCL einfach zu langsam ist.
Im Application/GUI-Bereich hat IMHO "gefühlsmäßig" Python gerade die Nase vorn. (ich bin weder Py noch Tk Experte)
z.B. Das Hauptargument für Wx ist ja die "Häßlichkeit" von Tk, die riesige Sammlung von Anwendungen die es aber bereits für Tk gibt wird dabei ignoriert, dh man müsste alles wieder neu erfinden.
Im Py-forum hab ich aber was von "Styles" für Tk gehört um dieses schönzumachen, und sowas gibts meines Wissens für Perl noch nicht.
Aber alles Hörensagen...
Aber ich bleib dabei an CPAN kommt aktuell keine Sprachbibliothek ran...
Gruß
rolf
nur Perl sieht immer automatisch aus wie Obfuscated code.
Immer?
Ich glaube Perl ist die Sprache die meisten Möglichkeiten bietet Code zu kommentieren und übersichtlich zu machen (z.b. um Zeichenketten darzustellen).
Aber du hast natürlich Recht, auch umgekehrt bietet es viel Möglichkeiten, wobei ich persönlich C Code deutlich unlesbarer finde und dort ist dies immer der Fall, weil es gar nicht anders geht.
Struppi.
Tach,
nur Perl sieht immer automatisch aus wie Obfuscated code.
Immer?
spätestens, wenn ich in der Nähe bin ;-)
Ich glaube Perl ist die Sprache die meisten Möglichkeiten bietet Code zu kommentieren und übersichtlich zu machen (z.b. um Zeichenketten darzustellen).
Das kann schon sein, aber meiner Meinung nach sollte eine Sprache mich dazu zwingen, damit ich nicht anfange Code wie diesen zu produzieren:
`$=`;$_=\%!;($_)=/(.)/;$==++$|;($.,$/,$,,$\,$",$;,$^,$#,$~,$*,$:,@%)=(
$!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++;
$_++;$_++;($_,$\,$,)=($~.$"."$;$/$%[$?]$_$\$,$:$%[$?]",$"&$~,$#,);$,++
;$,++;$^|=$";`$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=`
mfg
Woodfighter
Hallo Jens!
Das kann schon sein, aber meiner Meinung nach sollte eine Sprache mich dazu zwingen, damit ich nicht anfange Code wie diesen zu produzieren:
$=
;$=%!;($)=/(.)/;$==++$|;($.,$/,$,,$,$",$;,$^,$#,$~,$*,$:,@%)=(
$!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++;
$++;$++;($,$,$,)=($~.$"."$;$/$%[$?]$$$,$:$%[$?]",$"&$~,$#,);$,++
;$,++;$^|=$";$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=
Bekommst Du dann auch Probleme mit der [Verdauung](https://forum.selfhtml.org/?t=195408&m=1307843)?
Da ich heute träge bin... was bewirkt der Code?
Viele Grüße aus Frankfurt/Main,
Patrick
--
\_ - jenseits vom delirium - \_
![](http://www.atomic-eggs.com/fuernA.jpg)
[Diblom](http://www.atomic-eggs.com/pics/diblom.png) [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]
Achtung [Agentur](http://www.atomic-eggs.com/cwi/cwi_5.shtml#a5)! | Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml) | [Heute](http://www.atomic-eggs.com/cgi-bin/date_today.pl) schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
Tach,
Bekommst Du dann auch Probleme mit der Verdauung?
nein, es führt nur immer zu diesen peinlichen Situationen in denen man stundenlang über einen bekloppten Idioten und seinen noch bekloppteren Code flucht, um dann festzustellen, dass jener Idiot offensichtlich im sleben Stuhl sitzt, wie man selber.
Da ich heute träge bin... was bewirkt der Code?
mfg
Woodfighter
Hallo Jens!
Ach so... Ich weiß immer noch nicht, was der Code macht - und bin heute nicht dazu aufgelegt, es auszuprobieren - aber ich habe mich auch, wenn auch laienhaft, an sowas versucht (wobei hier keine Obfuscation sondern eher Irreführung die Absicht war - zumindest für diejenigen, die den Code allzu wörtlich nehmen).
mfg
Woodfighter
Viele Grüße aus Frankfurt/Main,
Patrick
Re!
Ach so... Ich weiß immer noch nicht, was der Code macht - und bin heute nicht dazu aufgelegt, es auszuprobieren -
Zumal ich es nur auf Windows testen könnte, was ja nicht geht (was ausgegeben wird ist mir schon klar, das vergaß ich gestern zu erwähnen).
Viele Grüße aus Frankfurt/Main,
Patrick
Ich glaube Perl ist die Sprache die meisten Möglichkeiten bietet Code zu kommentieren und übersichtlich zu machen (z.b. um Zeichenketten darzustellen).
Das kann schon sein, aber meiner Meinung nach sollte eine Sprache mich dazu zwingen,
Welche Sprache tut das?
$=
;$=%!;($)=/(.)/;$==++$|;($.,$/,$,,$,$",$;,$^,$#,$~,$*,$:,@%)=(
$!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++;
$++;$++;($,$,$,)=($~.$"."$;$/$%[$?]$$$,$:$%[$?]",$"&$~,$#,);$,++
;$,++;$^|=$";$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=
Naja, wenn du anfängst sowas zu produzieren, solltest du medizinische Maßnahmen in's Auge fassen ;-)
Perl sigils kann man als Nachteil sehen oder als Vorteil, da so (wenn man nicht "sowas produziert") sich der Typ einer Variabel schneller erkennen läßt. Und man nicht wie z.b. in C auf die Ungarische Notation angewiesen ist.
Struppi.
Tach,
Das kann schon sein, aber meiner Meinung nach sollte eine Sprache mich dazu zwingen,
Welche Sprache tut das?
Python und Java zwingen mich deutlich mehr gewisse Strukturen einzuhalten als Perl das tut und nutzen weniger Operatoren, was Code auch meist eher lesbarer macht.
mfg
Woodfighter
Hallo,
Ich glaube Perl ist die Sprache die meisten Möglichkeiten bietet Code zu kommentieren und übersichtlich zu machen (z.b. um Zeichenketten darzustellen).
Das kann schon sein, aber meiner Meinung nach sollte eine Sprache mich dazu zwingen, damit ich nicht anfange Code wie diesen zu produzieren:
$=
;$=%!;($)=/(.)/;$==++$|;($.,$/,$,,$,$",$;,$^,$#,$~,$*,$:,@%)=(
$!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++;
$++;$++;($,$,$,)=($~.$"."$;$/$%[$?]$$$,$:$%[$?]",$"&$~,$#,);$,++
;$,++;$^|=$";$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=
das bringt bei mir, so kopiert in eine abc.pl mit #!/usr/bin/perl am
$# is no longer supported at ./obfucsated.pl line 2.
$\* is no longer supported at ./obfucsated.pl line 2.
Gruß
jobo
Tach,
das bringt bei mir, so kopiert in eine abc.pl mit #!/usr/bin/perl am
$# is no longer supported at ./obfucsated.pl line 2.
$* is no longer supported at ./obfucsated.pl line 2.
das glaube ich nicht, schließlich tritt der Fehler in Zeile 1 auf ;-)
Bei mir gibt es noch mehr:
Use of $# is deprecated at test.pl line 1.
Use of $* is deprecated at test.pl line 1.
Can't exec "60": Datei oder Verzeichnis nicht gefunden at test.pl line 1.
Argument "z" isn't numeric in list assignment at test.pl line 1.
Can't exec "V": Datei oder Verzeichnis nicht gefunden at test.pl line 4.
Das Programm gibt auch nix aus bei mir, ist bestimmt nur 'ne Kleinigkeit, ein Buchstabendreher oder so ;-)
mfg
Woodfighter
Hallo Jens!
Das Programm gibt auch nix aus bei mir, ist bestimmt nur 'ne Kleinigkeit, ein Buchstabendreher oder so ;-)
Testet Ihr unter Windows? Laut der Beschreibung auf Wikipedia (deutsch) kann es nur unter UNIX laufen... Sicher wird es ein Konsolen-Einzeiler sein. Unter Windows muss man immer die Anführungszeichen austauschen: http://forum.de.selfhtml.org/archiv/2010/1/t194380/#m1300840
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo,
Testet Ihr unter Windows? Laut der Beschreibung auf Wikipedia (deutsch) kann es nur unter UNIX laufen... Sicher wird es ein Konsolen-Einzeiler sein. Unter Windows muss man immer die Anführungszeichen austauschen: http://forum.de.selfhtml.org/archiv/2010/1/t194380/#m1300840
GNU/Linux, Debian. Zeile 2, weil ich Shebang noch eingefügt hatte. Und dann hatte ich sicherheitshalber mal die Zeilenumbrüche gekillt. Selbes Ergebnis.
Gruß
jobo
Tach,
Testet Ihr unter Windows? Laut der Beschreibung auf Wikipedia (deutsch) kann es nur unter UNIX laufen...
GNU is not UNIX, aber mein Gentoo-Perl mag es nicht.
mfg
Woodfighter
.., aber mein Gentoo-Perl mag es nicht.
hehe - Du hast das als Beispiel gebracht :-)
Struppi.
Tach,
.., aber mein Gentoo-Perl mag es nicht.
hehe - Du hast das als Beispiel gebracht :-)
pah, das kann ja jeder behaupten ;-)
aber ich bekomme es auch nicht zum laufen (aber ich habe noch eine alte Version von perl gefunden, die einen Compilerfehler wirft ;-) ), dafür habe ich die Erklärung des Autors gefunden:
http://lists.netisland.net/archives/phlpm/phlpm-2004/msg00279.html
und hier eine die Zeile für Zeile erklärt: http://stackoverflow.com/questions/1830316/what-does-this-obfuscated-perl-code-do/1830382#answer-1830382 aber ich hab gerade leider keine Zeit zu zerlegen, wo es schief geht.
mfg
Woodfighter
Hallo Jens!
und hier eine die Zeile für Zeile erklärt: http://stackoverflow.com/questions/1830316/what-does-this-obfuscated-perl-code-do/1830382#answer-1830382 aber ich hab gerade leider keine Zeit zu zerlegen, wo es schief geht.
Wie ich schon vermutete, ein Konsolen-Einzeiler:
perl -e '...'
Kann ich aber auf Windows nicht testen... und wenn in der Tat Ausdrücke deprecated und nicht mehr unterstützt werden, wird es unter meinem Perl 5.10 eh nicht laufen...
Viele Grüße aus Frankfurt/Main,
Patrick
Tach,
Wie ich schon vermutete, ein Konsolen-Einzeiler:
perl -e '...'
hatte ich probiert mit dem selben Ergebnis.
Kann ich aber auf Windows nicht testen... und wenn in der Tat Ausdrücke deprecated und nicht mehr unterstützt werden, wird es unter meinem Perl 5.10 eh nicht laufen...
Sind wirklich zwischen 5.8 und 5.10 Dinge aus dem Standard entfernt worden?
mfg
Woodfighter
Sind wirklich zwischen 5.8 und 5.10 Dinge aus dem Standard entfernt worden?
selbst wenn, die meisten Spezialvariablen sind nur für die Show da und könnten locker ersetzt werden.
Der Code provoziert eine Fehlermeldung in der Unixshell, greift sich einzelne Buchstaben die er wilden¹ Spezialvariablen zuordnet und dann in neuer Reihenfolge ausdruckt.
Eher unspektakulär!
gruß
rolf
¹) Die meisten kenne ich nicht, das sind meist Relikte aus der Perl ersetzt Sed und Awk Zeit im tagtäglichen Einsatz sollten nur 1 höchtens 2 handvoll geläufig sein, beim Rest ist "use English" für voll qualifizierte Namen zu empfehlen.
IMHO sollte Kanon sein:
= Übergabe
$_
@_
@ARGV
$a,$b
= Output
$\
$,
$| (diskutierbar)
= Regex
$1 usw
$&, $`, $´ (diskutierbar)
= Fehlerbehandlung
$!
mehr siehe perldoc perlvar
Letztendlich ist es auch die Frage ob man in ner Perl-Shell arbeitet und mal schnell etwas setzen/ausprobieren will oder maintanable code schreibt und dann besser zum vollen Namen expandieren sollte.
Hallo,
Der Code provoziert eine Fehlermeldung in der Unixshell, greift sich einzelne Buchstaben die er wilden¹ Spezialvariablen zuordnet und dann in neuer Reihenfolge ausdruckt.
Eher unspektakulär!
#include <stdio.h>
main(t,_,a)char *a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,
main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?
main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t,
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#\
;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \
q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# \
){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \
iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \
}'+}##(!!/")
:t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1)
:0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a,
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}
"...winning entry from the International Obfuscated C Code competition written by Ian Phillipps in 1988..." sagt wikipedia.
Gruß
jobo
"...winning entry from the International Obfuscated C Code competition written by Ian Phillipps in 1988..." sagt wikipedia.
C ist ja auch eine furchtbare Sprache , golfing mit "include <stdio.h>" ;)
Golfing Fans sind vielleicht an meinen Weihnachtsbäumen interessiert und können sie unterbieten...
perl -e '($x=4**$_)=~y/1-9/"/,printf"%22s%s\n",($x)x2for 1..20,0,0'
Hi
Das kann schon sein, aber meiner Meinung nach sollte eine Sprache mich dazu zwingen, damit ich nicht anfange Code wie diesen zu produzieren:
Das Pythonistats etwas zwanghaftes an sich haben vermuten ja viele ... ;-)
Flame beiseite, man kann sich in Perl zu allem Möglichen zwingen lassen!
Golfing als Argument heranzuziehen (zumal nicht funktionierendes) ist genauso seriös wie die Behauptung das Python ungeeignet ist weil einem der Syntax bei jedem Cut&Paste um die Ohren fliegt...
Und zum Thema der tollen übersichtlichkeit von Python, hier mal ein aktuelles beispiel:
Ein Freund hat mich gestern von der wahnsinnig tollen Erfindung der ListComprehensions überzeugen wollen und auf dieses Posting hingewiesen:
http://www.python-forum.de/viewtopic.php?p=160375&sid=2d1fdfb5434a6629ddc5e2c30128171e#160375
...Sorry da find ich meinen Perl-Einzeiler deutlich lesbarer...
$config = <<__conf__;
LOOPSTART [TEST_FLASHMODE]
COUNT [1]
DIAG [SET_ENERGIESPARMODE_NORMAL]
SEND [31,01,0F,0C,00]
EXPECT[71,01,0F,0C,*]
TIMEOUT [0]
SOURCE[F1]
TARGET [10]
__conf__
$table{$1} = [ split /,/,$2 ] while ( $config =~ /(\w+)\s*\[(.*?)\]/g );
use Data::Dumper;
print Dumper \%table;
bye
rolf
Tach,
Flame beiseite, man kann sich in Perl zu allem Möglichen zwingen lassen!
Golfing als Argument heranzuziehen (zumal nicht funktionierendes) ist genauso seriös wie die Behauptung das Python ungeeignet ist weil einem der Syntax bei jedem Cut&Paste um die Ohren fliegt...
deswegen, begann dieser Zweig ja auch mit einem SCNR.
mfg
Woodfighter
Hi
deswegen, begann dieser Zweig ja auch mit einem SCNR.
...und wie oft konntest du ingesamt nicht widerstehen? ;)
Ich hatte gehofft dass du mir für das Problem jetzt eine schöne Pythonlösung lieferst... meinetwegen auch ne gezwungene.
mfg
Rolf
Ich meine jetzt weniger historisch bedingt oder weil eine Programmierer (oder eine Gruppe) das gut beherrscht, sondern aus wirtschaftlichen oder programmiertechnischen Gründen.
Wenn die ganze soziale Gruppe mit einer Sprache programmiert und es diese hauptberuflichen Software-Entwickler sind, sondern eine Sprache nur als Mittel zum Zweck nutzen, dann ist das zwar historisch bedingt, hat aber eben auch handfeste wirtschaftliche Gründe. Lernen braucht Zeit und Energie.
Soweit ich weiß, ist Perl besonders in der Bioinformatik und in der Computerlinguistik verbreitet. Klar ist das auch historisch begründet und klar kann man vieles auch in anderen Sprachen machen. Aber wenn man Programme anderer nutzen und abwandeln will – will man diese erst mit einem ziemlichen Zeitaufwand nach §whatever portieren? Oder einfach nur machen?
was kann nur perl?
Hallo,
was kann nur perl?
ein modul bei apache sein/haben? nach den bisherigen antworten scheint das nun grad nicht die herausragende stellung zu sein, zumindest nicht ungeteilt. ich weiß nicht, ob ein neueres projekt nicht doch eher in php oder ruby realisiert würde...;
Gruß
jobo
was kann nur perl?
mod_perl
ein modul bei apache sein/haben? nach den bisherigen antworten scheint das nun grad nicht die herausragende stellung zu sein, zumindest nicht ungeteilt.
ich weiß nicht, ob ein neueres projekt nicht doch eher in php oder ruby realisiert würde...;
Diese Frage kann man imho nicht pauschal beantworten. Die Frage "was kann nur Perl" schon eher ;-)
Hallo,
Diese Frage kann man imho nicht pauschal beantworten. Die Frage "was kann nur Perl" schon eher ;-)
Direkteren Zugriff auf den Apachen, als es PHP und Ruby on Rails bieten?
Accelerate your existing dynamic content
Easily create custom modules that become part of Apache
Gain access to all request stages
Configure Apache with Perl
Install Third-party modules
Gruß
jobo
Direkteren Zugriff auf den Apachen, als es PHP und Ruby on Rails bieten?
AFAIK ist das ein Alleinstellungsmerkmal, ja - man möge mich gerne korrigieren. Du kannst in sämtliche Request Phasen eingreifen, z.B. Code und Templates beim Apache Start im Shared MEM ablegen... Evtl. verfolgst du die genannten Links einfach mal weiter?