anf_frage: Variablen-Interpolation in RegEx

Hallo zusammen,

die gewünschten Dateien (AUSG) werden richtig angelegt (b1.shtml -
b7.shtml). In den Zeilen 34 und 36 wird aber $nr nur mit dem Wert "1"
berücksichtigt. Vielleicht kann jemand einem Anfänger helfen?

my $nr = 1;
my $zahl = 7;
while ( $nr <= $zahl ) {
$rueck = $nr - 1;
$vor = $nr + 1;
$zeilen[34] =~ s/xxx01ueb/$nr\. Überschrift/;
$zeilen[36] =~ s/xxx02rueck/b$rueck/;
$zeilen[36] =~ s/xxx03weit/b$vor/;

open AUSG, "> b$nr.shtml";
select AUSG;
print " [at] zeilen";
close AUSG;
$nr += 1;
}

Danke

mfG

Theo
Theo Pilz [ Di, 15 Januar 2008 22:52 ] [ ID #1908832 ]

Re: anf_frage: Variablen-Interpolation in RegEx

Theo Pilz wrote:

> die gewünschten Dateien (AUSG) werden richtig angelegt (b1.shtml -
> b7.shtml). In den Zeilen 34 und 36 wird aber $nr nur mit dem Wert "1"
> berücksichtigt. Vielleicht kann jemand einem Anfänger helfen?
>
> my $nr = 1;
> my $zahl = 7;
> while ( $nr <= $zahl ) {
> $rueck = $nr - 1;
> $vor = $nr + 1;
> $zeilen[34] =~ s/xxx01ueb/$nr\. Überschrift/;
> $zeilen[36] =~ s/xxx02rueck/b$rueck/;
> $zeilen[36] =~ s/xxx03weit/b$vor/;
>
> open AUSG, "> b$nr.shtml";
> select AUSG;
> print " [at] zeilen";
> close AUSG;
> $nr += 1;
> }

Wenn du einmal den Wert ersetzt hast, kannst du ihn in
der nächsten Interation natürlich nicht nochmal ersetzen.

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Frank Seitz [ Di, 15 Januar 2008 23:01 ] [ ID #1908833 ]

Re: anf_frage: Variablen-Interpolation in RegEx

Theo Pilz:

> die gewünschten Dateien (AUSG) werden richtig angelegt (b1.shtml -
> b7.shtml). In den Zeilen 34 und 36 wird aber $nr nur mit dem Wert "1"
> berücksichtigt. Vielleicht kann jemand einem Anfänger helfen?

> my $nr = 1;
> my $zahl = 7;
> while ( $nr <= $zahl ) {
> $rueck = $nr - 1;
> $vor = $nr + 1;
> $zeilen[34] =~ s/xxx01ueb/$nr\. Überschrift/;
> $zeilen[36] =~ s/xxx02rueck/b$rueck/;
> $zeilen[36] =~ s/xxx03weit/b$vor/;

Du ersetzt in diesem Code im ersten Durchlauf die Zeichenfolgen
"xxx01ueb", "xxx02rueck" und "xxx03weit" durch die Werte der
entsprechenden Variablen. Beim nächsten Durchlauf existieren
diese Zeichenfolgen daher nicht mehr (sie wurden ja schon ersetzt)
und somit gibt es nichts mehr, was jetzt noch ersetzt werden könnte
(außer, die genannten Zeichenfolgen kommen mehrfach vor, was ich
aber eher nicht annehme). Vielleicht solltest du einmal kurz sagen,
was genau du tun möchstest.

PS: Auch $rueck und $vor sollten mit "my" deklariert werden
(außer dies ist bereits an einer früheren Stelle im Code geschehen).

LG, Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: ferdinand.bolhar-nordenkampf [at] wien.gv.at
Ferry Bolhar [ Mi, 16 Januar 2008 08:30 ] [ ID #1910037 ]

Re: anf_frage: Variablen-Interpolation in RegEx

On Wed, 16 Jan 2008 08:30:43 +0100, "Ferry Bolhar"
<bol [at] adv.magwien.gv.at> wrote:

>Theo Pilz:
>
>> die gewünschten Dateien (AUSG) werden richtig angelegt (b1.shtml -
>> b7.shtml). In den Zeilen 34 und 36 wird aber $nr nur mit dem Wert "1"
>> berücksichtigt. Vielleicht kann jemand einem Anfänger helfen?
>
>> my $nr = 1;
>> my $zahl = 7;
>> while ( $nr <= $zahl ) {
>> $rueck = $nr - 1;
>> $vor = $nr + 1;
>> $zeilen[34] =~ s/xxx01ueb/$nr\. Überschrift/;
>> $zeilen[36] =~ s/xxx02rueck/b$rueck/;
>> $zeilen[36] =~ s/xxx03weit/b$vor/;
>
>Du ersetzt in diesem Code im ersten Durchlauf die Zeichenfolgen
>"xxx01ueb", "xxx02rueck" und "xxx03weit" durch die Werte der
>entsprechenden Variablen. Beim nächsten Durchlauf existieren
>diese Zeichenfolgen daher nicht mehr (sie wurden ja schon ersetzt)
>und somit gibt es nichts mehr, was jetzt noch ersetzt werden könnte
>(außer, die genannten Zeichenfolgen kommen mehrfach vor, was ich
>aber eher nicht annehme). Vielleicht solltest du einmal kurz sagen,
>was genau du tun möchstest.
>
>PS: Auch $rueck und $vor sollten mit "my" deklariert werden
>(außer dies ist bereits an einer früheren Stelle im Code geschehen).
>
>LG, Ferry

Leuchtet ein. Vielen Dank!

mfG

Theo
Theo Pilz [ Mi, 16 Januar 2008 13:52 ] [ ID #1910041 ]

Re: anf_frage: Variablen-Interpolation in RegEx

On Wed, 16 Jan 2008 08:30:43 +0100, "Ferry Bolhar"
<bol [at] adv.magwien.gv.at> wrote:

>Theo Pilz:
>
>> die gewünschten Dateien (AUSG) werden richtig angelegt (b1.shtml -
>> b7.shtml). In den Zeilen 34 und 36 wird aber $nr nur mit dem Wert "1"
>> berücksichtigt. Vielleicht kann jemand einem Anfänger helfen?
>
>> my $nr = 1;
>> my $zahl = 7;
>> while ( $nr <= $zahl ) {
>> $rueck = $nr - 1;
>> $vor = $nr + 1;
>> $zeilen[34] =~ s/xxx01ueb/$nr\. Überschrift/;
>> $zeilen[36] =~ s/xxx02rueck/b$rueck/;
>> $zeilen[36] =~ s/xxx03weit/b$vor/;
>
>Du ersetzt in diesem Code im ersten Durchlauf die Zeichenfolgen
>"xxx01ueb", "xxx02rueck" und "xxx03weit" durch die Werte der
>entsprechenden Variablen. Beim nächsten Durchlauf existieren
>diese Zeichenfolgen daher nicht mehr (sie wurden ja schon ersetzt)
>und somit gibt es nichts mehr, was jetzt noch ersetzt werden könnte
>(außer, die genannten Zeichenfolgen kommen mehrfach vor, was ich
>aber eher nicht annehme). Vielleicht solltest du einmal kurz sagen,
>was genau du tun möchstest.

Ach ja, habe vergessen zu antworten: Ich muss öfter Fotostrecken
anlegen (images - pages - thumbs) und will die damit verbundene
stupide Arbeit mit Perl automatisieren. Eine Musterdatei mit
Überschrift (xxx01ueb), Rückverweis auf das jeweils letzte Bild
(xxx02rueck) etc. soll variiert unter den Namen b1.shtml, b2.shtml
etc. so oft angelegt werden, wie die Strecke Bilder hat. Ich muss halt
diese Musterdatei innerhalb der Schleife für jeden Durchlauf neu
öffnen, damit die RegEx sich zurechtfinden können.

>PS: Auch $rueck und $vor sollten mit "my" deklariert werden
>(außer dies ist bereits an einer früheren Stelle im Code geschehen).

Hatte ich schon gemacht, strict meckert ja sonst.

Persönliche Anmerkung: Ich bin, wie ihr merkt, wirklich ziemlich
unbedarft, was das Programmieren angeht. Aber oft sind es gerade
"dumme" Fehler, bei denen einen die klugen Bücher oft im Stich lassen.

mfG

Theo
Theo Pilz [ Mi, 16 Januar 2008 15:16 ] [ ID #1910042 ]
Perl » de.comp.lang.perl.misc » anf_frage: Variablen-Interpolation in RegEx

Vorheriges Thema: Windows Pfadnamen mit Leerstelle
Nächstes Thema: utf-8 Zeichen als hash-key