/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
s/// medf. read-only fejl
Fra : Jesper Petersen


Dato : 01-04-01 19:04

Hej!

Jeg har forsøgt at lave et lille script, som laver en liste over mine
dokumenter i en mappe. Nogle af dokumenterne har et nummer i navnet, svarende
til hvilket kapitel de er. I listen over dokumenterne ønsker jeg at fjerne
kapitelnummeret og har forsøgt mig med det følgende. Når jeg kører scriptet
kommer følgende fejlmeddelelse: "Modification of a read-only value attempted
at doc.pl line 13". Er der nogle der kan fortælle hvorfor, jeg får denne fejl?

(Det skal lige nævnes, at jeg er helt ny ud i Perl, så det hele kan sikkert
laves meget smartere (jeg gør heller ikke noget for at fjerne eventuelle
mellemrum i dokumentnavnene, men det kommer, jeg vil gerne lige have følgende
til at virke først))

$counter = 0;

open (Tekstfil, ">Docliste.txt");

@filelist =<*.doc>;

for (0 .. $#filelist )

{

substr($filelist[$counter], -4, 4) = '';

for ($filelist[$counter] =~ /\d{1,2}/) {s/\d{1,2}/''/g}

print Tekstfil "$filelist[$counter]\n";

$counter = $counter + 1;

}


Mvh.
Jesper

 
 
Jesper Petersen (01-04-2001)
Kommentar
Fra : Jesper Petersen


Dato : 01-04-01 22:02

Så er problemet er løst.

Jesper

Adam Sjøgren (01-04-2001)
Kommentar
Fra : Adam Sjøgren


Dato : 01-04-01 22:08

On Sun, 01 Apr 2001 23:01:32 +0200, Jesper Petersen wrote:

> Så er problemet er løst.

Super, så gider du måske forklare hvad det var, så andre også lærer
af'et?


,

--
"Here comes my darling, saying hello you Adam Sjøgren
Why you look so worried, whats a-wrong with you?" asjo@koldfront.dk

Jesper Petersen (01-04-2001)
Kommentar
Fra : Jesper Petersen


Dato : 01-04-01 23:34

>Super, så gider du måske forklare hvad det var, så andre også lærer
>af'et?
> ,

Selvfølgelig, jeg troede bare, at det kun var mig selv, der ikke kunne se
fejlen

Jeg havde skrevet følgende:

for ($filelist[$counter] =~ /\d{1,2}/) {s/\d{1,2}/''/g}

Det skal lige defineres, at det er på $filelist[$counter] at s/\d{1,2}/''/g
skal udføres, iøvrigt skal '' slet ikke være der, hvis jeg bare vil fjerne
tallene. Det kunne så se ud som følger:

for ($filelist[$counter] =~ /\d{1,2}/) {$filelist[$counter] =~ s/\d{1,2}//g}

Mvh.
Jesper

Søg
Reklame
Statistik
Spørgsmål : 177547
Tips : 31968
Nyheder : 719565
Indlæg : 6408797
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste