|
|||||||||||||||||||||||||||
Christian Hansen wrote:
> Æh. jeg er ikke helt sikker på hvorfor, men det virker sgu fint nu. Så
> må fejlen ligge andetsteds i mit program.
Det lyder sansynligt :-)
Shell'en har masser af problemer med mellemrum, hvis man da ikke escaper dem
rigtigt...
En del perl funktioner bruger shell'en, så problemerne kunne komme derfra...
> Men tak for hjælpen alligevel:-)
Det var da så lidt, helt bogstaveligt.
> MVH Christian
>
> > Christian Borup wrote:
> >
> >> Christian Hansen wrote:
> >>
> >>
> >>> Jeg har brug for at indlæse samtlige filnavne fra et dir, helt bestemt
> >>> /etc/skel
> >>>
> >>> På en RedHat 7 har man bare være så usmart at lave filnavne med
> >>> mellemrum i, altså "et filnavn.ext".
> >>>
> >>> Hvis vi nu siger, at jeg har tre filnavne i mit dir, nemlig
> >>> "filnavn1.ext", "filnavn2.ext" og "fil navn3.ext"
> >>>
> >>> Jeg læser ind i et array med
> >>>
> >>> opendir(SKEL, "/etc/skel");
> >>> @entries = readdir(SKEL);
> >>> closedir(SKEL);
> >>>
> >>> nu skulle arrayet @entries gerne have 3 indgange, nemlig ovenstående
> >>> filnavne, men i stedet har det 4, nemlig "filnavn1.ext", "filnavn2.ext",
> >>> "fil" og "navn3.ext".
> >>
> >>
> >>
> >> Jeg ville faktisk forvente 5 indgange: ".", "..", "filnavn1.ext",
> >> "filnavn2.ext" og "fil navn3.ext".
> >
> >
> > :-) "." og ".." er selvfølgelig med.
> >
> >> Hvilket ville resultere i $#entries == 4, du har vel ikke bare skrevet
> >> $#entries ud i stedet for at dumpe array'et selv?
> >
> >
> > jeg har gjort som følger:
> >
> > opendir(SKEL, "/etc/skel");
> > @entries = readdir(SKEL);
> > closedir(SKEL);
> >
> > foreach $entry (@entries) {
> > if ($entry ne "." && $entry ne "..") {
> > print "$entry\n";
> >
> > }#end if
> > }#end foreach
> >
> >
> > Men det virker altså ikke på filnavne med mellemrum. Er det af samme
> > grund som Jesper Lunds problem?
> >
> > Jeg er ingen perlhaj, først lige begyndt, så bær over med underlige
> > spørgsmål:-)
> >
> > MVH Christian
|
||||||||||||||
|
||||||||||||||