Halihallo Martin
Dein Beispiel bringt mich auf einen kleinen Exkurs in die Perl-Internas:
Interessierte sollens lesen, andere sollens unterlassen:
-> ( d_produktname='".$produktname."' )";
find ich angenehmer.
oder
btw würds ( d_produktname='$produktname' )"; nicht auch tun?
noch übersichtlicher :D
?
--- kleiner Exkurs in "meinen" Perlstyle ---
dass $var="$andere_var"; absolute Katastrophe ist, steht selbst in der FAQ. Aber wie
sieht es mit
$var="hallo $name, text";
oder
$var='hallo '.$name.', text';
aus? - oder mit $var="hello" bzw. $var='hello'.
Nun, sieht wie Spitzfindigkeit aus, ist jedoch ein grosser Unterschied, denn:
In Perl werden strings in double quotes (") geparsed und enthaltene Variablennamen
in deren Werte aufgelöst. Das ist absolut aperformant, wenn man einer Variablen
einen konstanten Wert zuweist. Wie sieht es aber aus, wenn dynamischer Inhalt aus
einer Variablen eingefügt wird? - Der concat-Operator (.) wird in einen Perl-Upcode
aufgelöst und ist somit "Perl-Geschwindigkeit", die double quotes werden in C geparsed
und sind somit in "C-Geschwindigkeit" (schneller).
Folge:
Konstante String-zuweisungen sollten in single quotes stehen:
$var = 'hello';
Variable String-zuweisungen sollten in double quotes stehen:
$var = "hello $name, text";
Perl's String concat-Operator macht nur bei komplexen Concat-Operationen Sinn, wo eine
"Zwischenvariable" nötig wäre (dessen Allozierung in der Perl-VM langsam ist).
---
Man sieht, perl-style hat gar Konsequenzen auf die Performance oder anders gefolgert:
Man kann es mit dem Style auch zu weit treiben :-)
Viele Grüsse
Philipp
PS: Meine Benchmark-Bemühungen beschränkten sich zwar auf wenige Tests, das Resultat
war jedoch zumindest für mich eindeutig.