xNeTworKx: reg. Expr, jetzt versteh ich gar nichts mehr ?

Beitrag lesen

#include <h.allo>

Ich hab da ein kleines Logikproblem. Ich versuche einfach beiliebig viele Zeichen zwischen 2 "tags" zu extrahieren, aber ich weis nicht warum er keine Übereinstimmung findet. Ich versteh die Logik hierbei nicht. Ich teste am folgenden Text.

blablabla bnlabvlsgt dgdrdrgt r
gtdrgz drgdrg dfg g
xdrgh drhz drh drghdrhdrhdrhd
[codeabschnitt]
#!/usr/bin/perl
use strict;
   print "Hallo World\n";
[/codeabschnitt]
bzuvguftz ugfhrfh d h db
[codeabschnitt]
#!/usr/bin/perl -w
print "neuer Code";
[/codeabschnitt]

Ich will im Endeffekt mal alle Elemente zwischen [codeabschnitt] und [/codeabschnitt] haben. An und für sich kein Problem. Nur er findet diese beioden Tags nicht, wenn sie zusammen in einem Ausdruck stehen?
Was ich bis jetzt probiert habe: (das Ganze geschieht in einer Subroutine)
Ich kann den ganzen Text mit print $text; ausgeben.
Ich finde [codeabschnitt] für sich, und auch [/codeabschnitt], aber

while ($text =~ /[codeabschnitt].+?[/codeabschnitt]/g)   {
    print "Ja\n";
    }
funktioniert nicht.
Das ist ja das Logikproblem, daß ich dabei habe, weil er doch das Ganze als einen skalaren Wert sieht und ich bis jetzt immer so vorgegangen bin, und es bis jetzt immer funktioniert hat.

Wenn ich vor dem Regulären Ausdruck print $text; angebe, bekomme ich den ganzen Text aufgelistet, und zwar so :
blablabla bnlabvlsgt dgdrdrgt r gtdrgz drgdrg dfg g xdrgh drhz drh drghdrhdrhdrhd [codeabschnitt] #!/usr/bin/perl use strict; print "Hallo World\n"; [/codeabschnitt] bzuvguftz ugfhrfh d h db [codeabschnitt] #!/usr/bin/perl -w print "neuer Code"; [/codeabschnitt]

DH, Es kann nur daran liegen, daß ihm das .+? nicht gefällt. Ich habs aber auch schon auf die Harte Tour versucht, und zwar so :
    while ($text =~ /[codeabschnitt].*[/codeabschnitt]/g)   {
    print "Ja\n";
    }
Er findet aber auch nichts ?

Ich hab auch versucht mit "if" statt "while" zu suchen, aber nichts.
Wer kann mir sagen, warum er keine Übereinstimmung findet ? Ich bin nämlich mit meiner Logik am Ende.