Thread Suffix zerlegen
(3 answers)
Opened by kimmy at 2011-11-24 12:48
das suffix abc matcht auf HIJabc.
dann erstellst du die liste @list neu, während du aber in der for-schleife noch darüber iterierst. solltest du nicht tun, es sei denn, du willst perl verwirren und dich selbst. desweiteren ein ratschlag: gib deinen variablen vernünftige namen. du redest im artikel von suffix, als dateiname hast du dafur "root.txt", und in der schleife, in der du über diese datei iterierst, nennst du die variable $lex. sowas ist gut und wird dich weit bringen, wenn du die leser deines programms verwirren möchtest (und dich selbst, wenn du ein paar wochen auf den code schaust). zum verständnis trägt es nichts bei. desweiteren ist es ziemlich ineffizient, jedesmal ein grep zu machen, nur um ein einzelnes element aus @list zu entfernen. zumal du nicht genau das element entfernst, sondern alle, die darauf matchen. da wäre @list = grep $_ eq $string, @list; schon korrekter. aber nimm einen hash stattdessen, aus dem du einfach den key entfernst. dann gäbe es bei der regex womöglich noch die optimierng, auf alle suffixes auf einmal zu matchen. damit vermeidest du die äussere schleife. zum open: open(my $root, "root.txt") or die ... solltest du übrigens umwandeln in open(my $root, '<', "root.txt") or die ... es ist sinnvoll, den modus immer mit anzugeben. zum einlesen: Code (perl): (dl
)
chomp(my @list = <$begriff>); ist da schöner. perl lernen: http://perl-tutorial.org/ edit: und das darfst du auch lesen, selbst wenn dir hier jemand ein fertiges skript liefert! Last edited: 2011-11-24 13:42:58 +0100 (CET) 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 |