Probleme mit glob und copy

Probleme mit glob und copy

am 25.01.2007 10:26:23 von Markus

Hallo,

bin ein absoluter newbie und habe das folgende problem mit glob:

### Beginn Ausschnitt
use File::Copy;

# Get filenames for reference clocks
open CLKFIL, "< ${dirFix}REF_CLK2.${extFix}";
chomp(@lines =3D readline CLKFIL);
close CLKFIL;

# Copy all files for reference clocks
foreach (@lines) {copy (glob
"${dirCzh}TMP/$_$ssss.[CP]Z[OH]",$dirCzh);}
### Ende Ausschnitt

Ziel ist, einen oder mehrere Strings in der Datei
${dirFix}REF_CLK2.${extFix} einzulesen und dann verschiedene Dateien zu
kopieren.
Wenn der String z.B. "BRUS" (wie in diesem Fall) ist, sollen die
Dateien
BRUS$ssss.PZH
BRUS$ssss.PZO
BRUS$ssss.CZH
BRUS$ssss.CZO
von ${dirCzh}TMP nach ${dirCzh} kopiert werden.

Doch beim Ausführen kommt die folgende Fehlermeldung:

Too many arguments for glob at [SCRIPT, line 33 (die mit foreach)],
near "$dirCzh)".

Aber auch mit zusätzlichen Klammern:
### Ende Ausschnitt
foreach (@lines) {copy ((glob
"${dirCzh}TMP/$_$ssss.[CP]Z[OH]"),$dirCzh);}
### Ende Ausschnitt
bekomm ich diese Fehlermeldung:
Usage: copy(FROM, TO [, BUFFERSIZE])

Kann mir da jemand weiterhelfen? Ist wahrscheinlich nur ein
Newbie-Denkfehler, aber ich häng hier schon seit Stunden dran...
Danke!

Re: Probleme mit glob und copy

am 25.01.2007 10:32:52 von Frank Seitz

Markus@Heinze.biz wrote:

> bin ein absoluter newbie und habe das folgende problem mit glob:
[...]

Versuchs mal mit der Klammerung:

copy(glob("${dirCzh}TMP/$_$ssss.[CP]Z[OH]"),$dirCzh);

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

Re: Probleme mit glob und copy

am 25.01.2007 10:42:52 von Markus

On 25 Jan., 10:32, Frank Seitz wrote:
> Versuchs mal mit der Klammerung:
>
> copy(glob("${dirCzh}TMP/$_$ssss.[CP]Z[OH]"),$dirCzh);
>
> Grüße
> Frank

Da kommt dann immer noch die Fehlermeldung:
Usage: copy(FROM, TO [, BUFFERSIZE])

Re: Probleme mit glob und copy

am 25.01.2007 12:41:55 von Frank Seitz

Markus@Heinze.biz wrote:
> On 25 Jan., 10:32, Frank Seitz wrote:
>
>>Versuchs mal mit der Klammerung:
>>
>> copy(glob("${dirCzh}TMP/$_$ssss.[CP]Z[OH]"),$dirCzh);
>
> Da kommt dann immer noch die Fehlermeldung:
> Usage: copy(FROM, TO [, BUFFERSIZE])

Ich hatte nur die Klammerung korrigiert. Die stimmt zwar,
aber copy() und glob() passen so natürlich nicht zusammen,
da glob() eine Liste liefert, copy() aber jeweils eine einzelne
Datei kopiert. Es müsste eher so aussehen:

for my $file (glob("${dirCzh}TMP/$_$ssss.[CP]Z[OH]"))
{
copy($file,...) or die "Copy failed: $!";
}

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

Re: Probleme mit glob und copy

am 25.01.2007 12:54:15 von Markus

On 25 Jan., 12:41, Frank Seitz wrote:
> aber copy() und glob() passen so natürlich nicht zusammen,
> da glob() eine Liste liefert, copy() aber jeweils eine einzelne
> Datei kopiert. Es müsste eher so aussehen:
>
> for my $file (glob("${dirCzh}TMP/$_$ssss.[CP]Z[OH]"))
> {
> copy($file,...) or die "Copy failed: $!";
> }

Ja, so klappt es super! Danke für die Hilfe.

Grüße, Markus

>
> 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