Schrift
[thread]12567[/thread]

wie trenne ich den Inhalt und das layout bei cgi/html (Seite 2)

Leser: 14


<< |< 1 2 3 4 5 >| >> 44 Einträge, 5 Seiten
renee
 2008-10-07 09:36
#115236 #115236
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Auctioneer+2008-10-07 01:58:23--
Der Vorteil von HTML Templates liegt vielleicht darin, dass diese etwas einfacher mit HTML Editoren nachbearbeitet werden können. Allerdings kann es passieren, dass, je nach Template System, interne "Seiten-Schnittstellen-Kommando-Wörter" nach einer solchen Bearbeitung plötzlich weg sind, und dann funzt die Template nicht mehr.
Zum Beispiel??

Quote
HTML Templates machen vielleicht Sinn, wenn grosse HTML Inhalte eingelesen werden müssen, denn der Script selber nimmt sonst riesige Ausmasse an, was die Uebersichtlichkeit beim Editieren erschweren kann. Allerdings kann man den Script in einzelne Teile zerlegen, um dieses Problem zu lösen.
Inhalte und Logik sollten immer getrennt sein. Das erleichtert die Wartung des Skripts und des Layouts enorm.

Bei Skripten, die wirklich nur drei Zeilen HTML ausgeben, nehme ich dann die Funktionen von CGI.pm (z.B. print $cgi->b('fetter Text' );). Aber das ist die absolute Ausnahme. In 99% der Fälle nehme ich ein Template System.

Quote
Da normalerweise in einem Script sehr viele sehr kurze HTML Sequenzen vorhanden sind, die vielleicht nur eine oder zwei HTML Zeilen beinhalten, macht es fast keinen Sinn, derartige Dinge auszulagern, denn sonst verliert man ohne HTML Teile letztlich den Ueberblick im Script selber. Ich habe mir soeben ein derartiges "Werk" zur Brust genommen und gestaunt, wie schlecht man es machen kann, nur weil man um jeden Preis "templaten" wollte.

Häufig ist so etwas ein "Fehler" im Programmdesign. Ich finde es eher schlecht, wenn an 1000 Stellen jeweils eins oder zwei Zeilen HTML ausgegeben werden. Wenn es dann mal heißt "An der Stelle soll statt der Checkbox ein Radiobutton", dann sucht man relativ lange im Skript, während man in einem Template dann relativ schnell die Dinge ändern kann.

Quote
Die Geschwindigkeit von HTML Teilen innerhalb Scripts kann massiv erhöht werden, wenn der Server nicht jeden Buchstaben eines HTML Teils als Perl Script Teil abrufen (und auf scripttechnische Korrektheit prüfen) muss, sondern den HTML Teil nur als reinen Text (ohne Fehlerkontrolle) ablesen kann. Das erreicht man, wenn man HTML Sequenzen anstatt:
Ich nehme an, Du meinst die Interpolation von Variablen?!? Da gibt es keinen Unterschied zwischen "" und qq~~. Wenn Du Interpolation vermeiden willst, dann solltest Du '' bzw. q~~ verwenden.

Quote
Die viel eingesetzte, erfahrungsgemäss jedoch schlechteste Variante ist:

print =<<"EOF"
...
...
EOF

weil hier die Perl Backslashes \ auch innerhalb HTML beibehalten werden müssen, sonst gibt es haufenweise Errors
Häh??

Quote
, ausgenommen, man verzichtet auf Gänsezeichen, was aber eigentlich ein Murks ist. Ausserdem kann man ohne Gänsezeichen keine mehrwörtigen (z.B.) Bildinformationen -alt=Muster text- Informationen eintragen weil so nur das erste Wort nach -alt=Muster- ausgelesen wird, abgesehen vom möglichen Folge-Error, der das zweite (offene) Wort im weiteren Programmablauf hinterlässt.

print =<<"EOF";
<img src=\"musterbild.jpg\" alt=\"Muster text\" border=\"0\">
EOF
Die Backslashes sind unnötig:

Code: (dl )
1
2
3
4
5
6
7
C:\>perl

print <<"EOF";
Die ist ein "Test"
EOF
^D
Die ist ein "Test"


Du solltest aber das "=" vor dem "<<" weglassen.

Quote
und weil der Abstand zwischen dem Start/Schluss - EOF manchmal eine Leerlinie betragen muss, damit es vom Server "verstanden" wird:

print =<<"EOF";

<img src=\"musterbild.jpg\" alt=\"Muster text\" border=\"0\">

EOF
Bitte Beispiel. Das wäre ein Bug in Perl und dieses Verhalten ist mir noch nie untergekommen (was nicht heißt, dass es den Bug nicht geben kann).
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2008-10-07 12:29
#115240 #115240
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Auctioneer+2008-10-07 01:58:23--
Da normalerweise in einem Script sehr viele sehr kurze HTML Sequenzen vorhanden sind, die vielleicht nur eine oder zwei HTML Zeilen beinhalten, macht es fast keinen Sinn, derartige Dinge auszulagern, denn sonst verliert man ohne HTML Teile letztlich den Ueberblick im Script selber.

nein, denn html ist nur das layout der daten. man bringe die daten in eine vernünftige form und
schicke sie ans template.
Quote
Ich habe mir soeben ein derartiges "Werk" zur Brust genommen und gestaunt, wie schlecht man es machen kann, nur weil man um jeden Preis "templaten" wollte.

und ich hab noch viel schlechtere dinge gesehen, die unbedingt templating vermeiden wollten
oder ihr eigenes templating machen wollten (letzteres inklusive meinem eigenen code).
Quote
Die Geschwindigkeit von HTML Teilen innerhalb Scripts kann massiv erhöht werden, wenn der Server nicht jeden Buchstaben eines HTML Teils als Perl Script Teil abrufen (und auf scripttechnische Korrektheit prüfen) muss, sondern den HTML Teil nur als reinen Text (ohne Fehlerkontrolle) ablesen kann. Das erreicht man, wenn man HTML Sequenzen anstatt:

print "<img src=\"musterbild.jpg\" alt=\"Muster text\" border=\"0\">";

so:

print qq|<img src="musterbild.jpg" alt="Muster text" border="0">|;

sorry, aber jetzt wirds esoterisch. das ist einfach nur quatsch. das macht nicht den
geringsten unterschied. ich empfehle dir, Benchmark.pm auszuprobieren.
beide beispiele sind zudem double-quotes.
Quote
Es gibt noch andere Varianten wie:

print <<EO_HTML;
<img src="musterbild.jpg" alt="Muster text" border="0">
EO_HTML
[...]
Die viel eingesetzte, erfahrungsgemäss jedoch schlechteste Variante ist:

print =<<"EOF"
...
...
EOF

weil hier die Perl Backslashes \ auch innerhalb HTML beibehalten werden müssen, sonst gibt es haufenweise Errors

bitte was? langsam geht mir dein posting auf die nerven. teste bitte vorher deine behauptungen.
zudem ist <<"EOF" und <<EOF dassselbe, lediglich <<'EOF' ist was anderes (keine interpolation).

Quote
Mustervorlage eines meiner Auktionsscripts

in anbetracht deiner empfehlungen und zweifelhaften aussagen würde ich doch gerne mal den code sehen...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
scriptor
 2008-10-07 12:54
#115241 #115241
User since
2008-05-07
69 Artikel
BenutzerIn
[Homepage] [default_avatar]
Auctioneer+2008-10-07 01:58:23--
Der Vorteil von HTML Templates liegt vielleicht darin, dass diese etwas einfacher mit HTML Editoren nachbearbeitet werden können. Allerdings kann es passieren, dass, je nach Template System, interne "Seiten-Schnittstellen-Kommando-Wörter" nach einer solchen Bearbeitung plötzlich weg sind, und dann funzt die Template nicht mehr.

HTML Templates machen vielleicht Sinn, wenn grosse HTML Inhalte eingelesen werden müssen, denn der Script selber nimmt sonst riesige Ausmasse an, was die Uebersichtlichkeit beim Editieren erschweren kann. Allerdings kann man den Script in einzelne Teile zerlegen, um dieses Problem zu lösen.

Da normalerweise in einem Script sehr viele sehr kurze HTML Sequenzen vorhanden sind, die vielleicht nur eine oder zwei HTML Zeilen beinhalten, macht es fast keinen Sinn, derartige Dinge auszulagern, denn sonst verliert man ohne HTML Teile letztlich den Ueberblick im Script selber. Ich habe mir soeben ein derartiges "Werk" zur Brust genommen und gestaunt, wie schlecht man es machen kann, nur weil man um jeden Preis "templaten" wollte.

Ich bin platt! So etwas von jemanden zu lesen, der sich mit einer großen Webanwendung beschäftigt...
Eine meine ersten Massnahmen war es seinerzeit ein einfaches Template-System einzuführen und parallel ein einheitliches internes Nutzdatenformat (Hash-Array). Alles, was ich an Logik brauche, steckt entweder schon in den Datenbankabfragen oder Skripten - die teilweise automatisch- auf die Nutzdaten angewandt werden.
HTML im Skript gibt es nur noch für die hierarchische Ausgabe der Navigation (Nested Set Model nach <ul>) und einige Funktionen, die HTML erzeugen sollen (z.B.: "%%gartikel.art.kurz.html_textarea(100,3,gartikel_art_kurz)%%").
Die Menge HTML ist doch kein Maßstab, selbst der Seitentitel wird bei mir aus einem Template erzeugt (Ausschnitt aus der index.html der aktuellen Version):
Code: (dl )
1
2
3
<ins class="ssperl" id="tmpl_pagename"><h1 class="pagename">%%.pagename%%:&nbsp;<span>%%.pagetitel%%</span></h1>
</ins>
<script type="text/ssperl" >MetaFillTemplate( $tmpl_pagename, undef);</script>

Mein Ziel war immer, das ein nicht programmierfähiger Webdesigner die Vorlagen bearbeiten kann. Deshalb werde ich im nächsten Schritt auch keinerlei Perl mehr in den Seitenvorlagen haben.
Das Zeitargument könnte gegen das aufwendige Parsen von Templates stehen. Dem kann mit Kompilieren oder/und Cachen auf verschiedensten Ebenen (Template/Seite) begegnet werden.
Ich würde nie und nimmer einen Schritt zurück in den Code machen!
Auctioneer
 2008-10-09 05:15
#115286 #115286
User since
2008-09-30
26 Artikel
BenutzerIn
[Homepage] [default_avatar]
Sorry, da habe ich wohl Dinge erzählt, die für einige (Fach)Leute etwas zu denken geben. Hat sicher etwas Gutes. Bringt Leben ins Forum.

Meine Ausführungen basieren auf eigenen und auf Erfahrungen vieler anderer, die über den Zeitraum von mehr als 8 Jahren in unzähligen Versuchen teilweise kompetenter Leute gesammelt wurden. Fakt ist, dass für, und ich spreche nur davon, bei unseren EA Auktionsscripts die Dinge halt so sind, wie ich diese teilweise vorgehend beschrieben habe. Jeder kann das einfach und selber nachvollziehen, indem man es einmal ausprobiert. Kostet nur einen Riesenhaufen Zeit und Denkarbeit. Ich kann nicht mehr dazu sagen.

Ich hoffe, niemandem mit dieser Aussage weh zu tun. Es gibt Leute, für die "CGI.pm" Master of the Universe ist, auch wenn man in letzter Zeit zunehmend kritischere Kommentare liest. EA Scripts verwenden normalerweise "CGI.pm" nicht, weil es auf andere Weise, zumindest was diesen Script Typen betrifft, unkomlizierter, sicherer und schneller geht (auch wenn Fachleute wie Randall S. ob einer solcher Aussage wortlos den Hut nehmen und gehen würden)

Aber die Meisten von uns waren und sind keine Perl-Pro's, sondern Leute, die vielleicht versuchen, aus "Something Very Basic" etwas zu lernen und mit viel Aufwand zu versuchen, es zu verbessern. Einen anderen Anspruch habe auch ich nie gestellt.

Muster Auktion in der Urform

EA in seiner Urform absolut nicht vergleichbar mit den heutigen PHP-Komplett-Werken, die es im besten Fall noch erfordern, irgendwo eine eigenes Logo und eine E-Mail Adresse einzusetzen.

Kein Wunder, dass, wohin der Finger klickt, das Zeugs auch überall mehr oder weniger gleich aussieht. Da weiss man zuletzt sogar manchmal nicht einmal mehr, in welchem Forum man sich gestern noch rumgeschrieben hat...

Ich würde mir nicht anmassen, jemandem Perl-spezifische "Festwerte" geben zu wollen, ich kann nur wiederholen, was andere schon beschrieben haben und was schlussendlich für mich, als auch für Newcomer, am besten verständlich ist und auch funktioniert, ohne dass diese sich mit Problemen auseinandersetzen müssen, die so vielleicht vermeidbar sind. So war auch mein Beitrag zu verstehen. (Meine Art des Schreibens erscheint vielleicht einigen manchmal "etwas kompetent"...)

Wer Lust hat, einen Teil meiner anderen Aussagen nachzuvollziehen, soll sich doch einfach einen EA Basisscript downloaden, einige Add-On's installieren und in verschiedenen (Betriebs-) Arten so etwa 20 - 30'000 volumige Auktionen laufen lassen. Die Messvergleiche werden dann zeigen, was wie abgegangen ist. Da gibt es sogar Timing-Unterschiede, je nachdem ob "EOF" EO_HTML qq| qq~" verwendet wird. Es gab Web-Kollegen, da Live-Tests mit einen Vielfachen meiner bislang max. 24'000 Einträge gemacht haben, und dann kommen die kleinen Unterschiede noch besser zum Vorschein.

Wichtig erachte ich auch meine Aussagen zu Templates (für Auktionsscripts).
Was ist denn einfacher, als in einem Script schön sauber geschriebenen HTML Source Code zu erkennen, was natürlich die absolute Voraussetzung für einen Perler ist. Es geht ja nur so, sonst habe ich als "Amateur" überhaupt keine Ahnung, wo ich mich befinde und was was macht. Und ganz nebenbei kann ich lernen, wie ein Script überhaupt aufgebaut ist und was, wo, zumindest ganz rudimentär, zu welchem Resultat führt.

Einfach als (passendes) Beispiel irgend ein Templateding:
Beispiel: Scriptteil:
Code: (dl )
1
2
3
4
5
6
<!-- my $message = "$form{'ALIAS2'}, your Rating of $form{'ALIAS'} has been saved.\n";

print &load_template ('feedform3.html', {
MESSAGE => $message,
%globals
});


Templateteil:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- HTML TEMPLATE version 1.0 -->
<HTML>
<HEAD>
<TITLE></TITLE>
<META name="description" content="<%META_DESC%>">
<META name="keywords" content="<%META_KEYWORDS%>">
</HEAD>
<%HEADER%>
<%NAVBAR%>
<center>
<H2>Add to a User's Rating</H2>
<%MESSAGE%>
</center>
<%FOOTER%>
</BODY>
</HTML>


Es wird wohl niemand ernsthaft behaupten wollen, dass sowas (oder ähnliches) eine Template für eigentlich nur eine einzige Zeile rechtfertigt. Da findet ein gewaltiges HIN & HER statt, bis diese Seite produziert ist, wo man ja eigentlich alles schon bereit hat. Zeit ist bei einem Auktionsscript das A und das O.

Und kein Newcomer wird in der Lage sein, mit Ausnahme vielleicht des Titel-Linien-Inhalts, etwas zu erkennen oder daran zu ändern, und man muss im Script selber trotzdem auch noch arbeiten.

Ich höre schon, Es ginge auch anders! Aber so viel anders wäre "anders" mit Sicherheit auch nicht, auch wenn einige hier natürlich auch anderer Meinung sein dürfen. Für mich: Simply a waist of time... und für "new Programmers" auf Zeit hinaus völlig intransparent.

Wenn die kostenlose deutschsprachige Beta-Version meiner LGPL-EA-Variante so gegen Weihnachten erhältlich sein wird, bin ich für Kritik zugänglich, soweit es meine eigenen Arbeiten an der Software betrifft. Mutmassungen darüber zu einem früheren Zeitpunkt machen keinen Sinn und den Script auch nicht besser.

Aus technischen Gründen bin ich auch an "gewisse unveränderbare Fakten" gebunden, um EA 1.5x Add-On-kompatibel zu bleiben, selbst wenn es heute dafür vielleicht bessere Lösungen für gewisse "Dinge" gäbe. Und an dem möchte und werde ich auch nichts ändern.

Wurde jetzt trotzdem länger als geplant, aber ich habe morgen frei und kann mir die Nacht um die Ohren schlagen.

Hoffe niemandem stark auf den einen oder anderen Fuss getreten zu sein. Es war nicht meine Absicht.

Ernie
Never judge another men before you walk a mile in his shoes
scriptor
 2008-10-09 12:23
#115287 #115287
User since
2008-05-07
69 Artikel
BenutzerIn
[Homepage] [default_avatar]
Auctioneer+2008-10-09 03:15:46--
Wenn die kostenlose deutschsprachige Beta-Version meiner LGPL-EA-Variante so gegen Weihnachten erhältlich sein wird, bin ich für Kritik zugänglich, soweit es meine eigenen Arbeiten an der Software betrifft. Mutmassungen darüber zu einem früheren Zeitpunkt machen keinen Sinn und den Script auch nicht besser.


Du baust auf einem vorhanden Skript auf. Was Du dort vorgefunden hast und auch die spezielle Aufgabenstellung (Auktion) prägen Deine Sichtweise. Die Fragestellung in diesem Thread war die generelle eines Einsteigers:„wie trenne ich den Inhalt und das Layout bei cgi/html“.

Auctioneer+2008-10-09 03:15:46--
Wichtig erachte ich auch meine Aussagen zu Templates (für Auktionsscripts).
Was ist denn einfacher, als in einem Script schön sauber geschriebenen HTML Source Code zu erkennen, was natürlich die absolute Voraussetzung für einen Perler ist. Es geht ja nur so, sonst habe ich als "Amateur" überhaupt keine Ahnung, wo ich mich befinde und was was macht. Und ganz nebenbei kann ich lernen, wie ein Script überhaupt aufgebaut ist und was, wo, zumindest ganz rudimentär, zu welchem Resultat führt.

Das mag Deinen derzeitigen „Zustand“ beschreiben. Spätestens bei der ersten eigenen Webanwendung wirst Du anders denken.
Du bist ein Perl-"Amateur"; Denk mal an den nicht-perlenden Anwender!
pq
 2008-10-09 12:47
#115288 #115288
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wie schwer ist es, ein script mit Benchmark.pm zu posten, das deine Aussage
belegt?
Auctioneer+2008-10-09 03:15:46--
Sorry, da habe ich wohl Dinge erzählt, die für einige (Fach)Leute etwas zu denken geben. Hat sicher etwas Gutes. Bringt Leben ins Forum.

gut, du hältst dich also für den experten?
Quote
Meine Ausführungen basieren auf eigenen und auf Erfahrungen vieler anderer, die über den Zeitraum von mehr als 8 Jahren in unzähligen Versuchen teilweise kompetenter Leute gesammelt wurden.

ich biete 10 jahre, auch kompetente leute und erfahrung auf verschieden grossen plattformen
mit unterschiedlicher notwendigkeit zur skalierung. ich biete ausserdem das template-modul,
das unter allen pure-perl-templatings mit memory-cache das schnellste ist.
so, und nun? was sollen mir deine 8 jahre und "teilweise kompetenten leute" nun sagen?
mit x jahren erfahrung um sich zu schlagen ist meist nicht sinnvoll, da man auch x jahre
mist gebaut haben kann =)
Quote
Fakt ist, dass für, und ich spreche nur davon, bei unseren EA Auktionsscripts die Dinge halt so sind, wie ich diese teilweise vorgehend beschrieben habe. Jeder kann das einfach und selber nachvollziehen, indem man es einmal ausprobiert. Kostet nur einen Riesenhaufen Zeit und Denkarbeit. Ich kann nicht mehr dazu sagen.

laber laber. nix da, Benchmark.pm her und getestet. geht ganz schnell.
Quote
Ich hoffe, niemandem mit dieser Aussage weh zu tun.

dir selber letztendlich =)

Quote
(auch wenn Fachleute wie Randall S. ob einer solcher Aussage wortlos den Hut nehmen und gehen würden)

Randall S.? wer ist das denn? meinst du Randal L. Schwartz?

Quote
Aber die Meisten von uns waren und sind keine Perl-Pro's, sondern Leute, die vielleicht versuchen, aus "Something Very Basic" etwas zu lernen und mit viel Aufwand zu versuchen, es zu verbessern. Einen anderen Anspruch habe auch ich nie gestellt.


Quote
(Meine Art des Schreibens erscheint vielleicht einigen manchmal "etwas kompetent"...)

bitte was?
es waren ausser den aussagen zu qq und geschwindigkeit auch noch richtige falschaussagen dabei,
z.b. dass man bei <<"EOM" quotes escapen muss. hab doch wenigstens den mumm, diese
fehler zuzugeben.

Quote
Wer Lust hat, einen Teil meiner anderen Aussagen nachzuvollziehen, soll sich doch einfach einen EA Basisscript downloaden

wenn du lust hast, deine aussagen zu untermauern, schreib nen benchmark, wenn du denn weisst,
wie man das professionell macht.

Quote
Ich höre schon, Es ginge auch anders! Aber so viel anders wäre "anders" mit Sicherheit auch nicht, auch wenn einige hier natürlich auch anderer Meinung sein dürfen. Für mich: Simply a waist of time... und für "new Programmers" auf Zeit hinaus völlig intransparent.

ich programmiere nicht mit und für anfänger. es geht hier auch um ne menge kohle.
ich habe nicht perl gelernt, um spaghetti-code für anfänger zu schreiben, sondern ordentlich
zu designen, weil sich das langfristig auszahlt.

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Ronnie
 2008-10-09 14:15
#115290 #115290
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Templating ist heute nicht mehr diskutierbar, sondern Standard. Man kann davon abweichen, wie Renee schon angedeutet hat mit CGI.pm oder CPAN:HTML::Declare, aber im Regelfall ist Templating die bessere und schnellere Wahl. Früher war es etwas aufwendiger die Datenstrukturen für CPAN:HTML::Template zu bauen, aber CPAN:HTML::Template::Compiled u.a. erlauben direkten Methodenaufruf aus dem Template. Und es ist unglaublich praktisch seine Templates an einen Designer abgeben zu können, der die Optik trimmt. Gute HTML-Editoren stören sich nicht an Template-Tags, insofern ist das kein Problem. Außerdem ist es keine schlechte Praxis zuerst die Weboberfläche zu faken, um sich mit Kunden über Benutzerinteraktionen und deren visuelle Repräsentation abstimmen zu können. Das dazu verwendete HTML kann dann direkt für die Templates genutzt werden.
Gast Gast
 2008-10-09 14:23
#115291 #115291
Auctioneer+2008-10-09 03:15:46--
Da gibt es sogar Timing-Unterschiede, je nachdem ob "EOF" EO_HTML qq| qq~" verwendet wird.

Würdest du diese deine Festellung bitte einmal näher erläutern?
pq
 2008-10-09 14:39
#115293 #115293
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl 
use strict;
use warnings;
use Data::Dumper;
use Carp;

use Benchmark;
timethese($ARGV[0] || 100, {
    quotes => sub {
        for (1..100) {
            my $x = "<img src=\"musterbild.jpg\" alt=\"Muster text\" border=\"0\">";
        }
    },
    qq1 => sub {
        for (1..100) {
            my $x = qq|<img src="musterbild.jpg" alt="Muster text" border="0">|;
        }
    },
    qq2 => sub {
        for (1..100) {
            my $x = qq~<img src="musterbild.jpg" alt="Muster text" border="0">~;
        }
    }
});


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Benchmark: timing 100000 iterations of qq1, qq2, quotes...
qq1: 3 wallclock secs ( 2.56 usr + 0.00 sys = 2.56 CPU) @ 39062.50/s (n=100000)
qq2: 3 wallclock secs ( 2.54 usr + 0.00 sys = 2.54 CPU) @ 39370.08/s (n=100000)
quotes: 2 wallclock secs ( 2.54 usr + 0.00 sys = 2.54 CPU) @ 39370.08/s (n=100000)

Benchmark: timing 100000 iterations of qq1, qq2, quotes...
qq1: 3 wallclock secs ( 2.62 usr + 0.00 sys = 2.62 CPU) @ 38167.94/s (n=100000)
qq2: 3 wallclock secs ( 2.63 usr + 0.00 sys = 2.63 CPU) @ 38022.81/s (n=100000)
quotes: 2 wallclock secs ( 2.52 usr + 0.00 sys = 2.52 CPU) @ 39682.54/s (n=100000)

Benchmark: timing 100000 iterations of qq1, qq2, quotes...
qq1: 3 wallclock secs ( 2.61 usr + 0.00 sys = 2.61 CPU) @ 38314.18/s (n=100000)
qq2: 2 wallclock secs ( 2.61 usr + 0.00 sys = 2.61 CPU) @ 38314.18/s (n=100000)
quotes: 1 wallclock secs ( 2.56 usr + 0.00 sys = 2.56 CPU) @ 39062.50/s (n=100000)

Benchmark: timing 100000 iterations of qq1, qq2, quotes...
qq1: 3 wallclock secs ( 2.57 usr + 0.00 sys = 2.57 CPU) @ 38910.51/s (n=100000)
qq2: 2 wallclock secs ( 2.52 usr + 0.00 sys = 2.52 CPU) @ 39682.54/s (n=100000)
quotes: 3 wallclock secs ( 2.55 usr + 0.00 sys = 2.55 CPU) @ 39215.69/s (n=100000)

Benchmark: timing 100000 iterations of qq1, qq2, quotes...
qq1: 3 wallclock secs ( 2.56 usr + 0.00 sys = 2.56 CPU) @ 39062.50/s (n=100000)
qq2: 3 wallclock secs ( 2.51 usr + 0.00 sys = 2.51 CPU) @ 39840.64/s (n=100000)
quotes: 2 wallclock secs ( 2.53 usr + 0.00 sys = 2.53 CPU) @ 39525.69/s (n=100000)

die unterschiede sind also unterhalb dessen, was man als anlass für optimierung nehmen würde.
ausserdem liegt nicht immer dieselbe sub vorne.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Gast Gast
 2008-10-08 18:18
#115301 #115301
pq+2008-10-07 10:29:04--
in anbetracht deiner empfehlungen und zweifelhaften aussagen würde ich doch gerne mal den code sehen...

Tu dir das nicht an ... *gg*
der Mann (Auctioneer) meint das was er da geschrieben hat, offensichtlich sehr ernsthaft.
<< |< 1 2 3 4 5 >| >> 44 Einträge, 5 Seiten



View all threads created 2008-10-01 10:05.