Thread Zeichen durch Zeichenfolge ersetzen
(12 answers)
Opened by PETER_PAN2009 at 2010-06-23 13:45 2010-06-23T14:46:56 Sven_123 nun, das nicht, aber wenn du schon den speicher ansprichst, dann geb ich dir dazu auch ein beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 my %big_hash; my %big_array; ... if ($x) { # fülle %big_hash und %big_array und mache was damit ... } if ($y) { # mach was ganz anderes } # usw usf # %big_hash und @big_array verbrauchen bis zum scriptende platz vs. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... if ($x) { my %big_hash; my %big_array; # fülle %big_hash und %big_array und mache was damit ... } # hier sind %big_hash und @big_array schon nicht mehr vorhanden, # speicher wird wieder ans script zurückgegeben zur wiederverwendung # und das ganz automatisch if ($y) { # mach was ganz anderes } # usw usf Quote ehrlich, das würde dir passieren? 1. wieso sollte man variablen nur in einer schleife deklarieren, wenn man sie aussen noch braucht? 2. und wenn es einem passiert, wo ist dann das problem? strict weist einen ja sofort darauf hin und das problem ist gelöst. ich hab damit jedenfalls keine probleme. Quote ganz im gegenteil, ich würde bei einer armada von deklarationen den überblick verlieren, weil ich gar nicht weiss, wo diese variablen denn alle benutzt werden. denke mal als *maintainer* des scripts. also entweder als andere person oder als du selbst ein halbes jahr später. du willst das script doch nicht nur einmal schreiben, sondern später auch noch verstehen. ein weiterer grund: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 sub foo { for my $i (0 .. 23) { ... } } ... sub bar { for my $i (23 .. 42) { } } würde man das jetzt vorausdeklarieren, wäre das ziemlich sinnfrei, denn die beiden $i haben absolut gar nichts miteinander zu tun. Quote ich sagte ja schon: "mach ich später" zählt nicht. wann genau willst du es denn machen? ab wann könnte der fehler passieren? ab welcher grösse des scripts? und du glaubst wirklich, dass es einen moment gibt, indem du sagst, ok, jetzt ist der moment gekommen, jetzt suche ich alles nach open ab und füge überall eine fehlerabfrage hinzu? desweiteren geht es hier nicht um irgendwelche scripte, die du bei dir lokal ein paar mal laufen lässt, sondern du hast ein beispiel für jemand anderes geschrieben. wenn du meinst, ein open kann bei dir nie fehlschlagen, dann gut, aber ich finde halt, in beispielen ist es gerade wichtig. wie lange programmierst du schon? ich kann nur sagen, es passiert unzählige male in einer programmiererlaufbahn, dass ein script, dass man mal geschrieben hat, erweitert wird, rumliegt, wieder erweitert wird und dass es an irgendeiner stelle mal nicht mehr hinhaut. in denm moment ist man wirklich verdammt dankbar, wenn man eine gute fehlerbehandlung hat. Quote http://reneeb-perlblog.blogspot.com/2009/09/versch... Quote mit wundtippen meinte ich die ganzen quotes. und mein vorschlag war, wie ich auch schon sagte, dass ich das untereinanderschreiben lesbarer finde, weil man sofort sieht, was mit was ersetzt wird. stell dir mal vor, du willst ein ersetzungspaar herausnehmen, erkennst du immer sofort, was zusammengehört? hier gilt auch wieder: stelle dir nicht nur vor, dass du das programm schreibst, sondern dass du es irgendwann auch mal wieder lesen und verstehen musst. so, meine meinung, meine erfahrung. wir sprechen uns einfach mal in 5 jahren wieder, schlage ich vor ;-) Last edited: 2010-06-23 17:15:03 +0200 (CEST) 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: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |