20. februar 2008 - 15:52Der er
4 kommentarer og 1 løsning
Check fil med mellemrum, etc.
Hej alle.
Jeg har list problemer med et Perl script, som skal checke om en given fil findes på et linux filsystem.
Filnavnet står i variablen $configFile og indeholder oprindeligt dette: /vmfs/volumes/45f963b4-69dbf9bc-4db5-001372600484/Skal slettes om lidt af (ML)/Skal slettes om lidt af (ML).vmx
Men som bekendt er mellemrum og paranteser ikke det bedste at bruge i et linux filsystem (filerne er oprettet fra en ikke-linux maskine). Så jeg gør følgende:
.. og får herefter følgende indhold i $configFile variablen: /vmfs/volumes/45f963b4-69dbf9bc-4db5-001372600484/Skal\ slettes\ om\ lidt\ af\ \(ML\)/Skal\ slettes\ om\ lidt\ af\ \(ML\).vmx
Dette burde være et fuldt gyldigt linux filnavn, men når jeg i mit script prøver følgende:
unless (-e $configFile) { print "Dur ikke!"; }
.. så skriver den: Dur ikke! Jeg har prøvet at cat'e det nye filnavn i linux konsollen, og det virker fortrindligt, så der må være et eller andet i Perl, jeg ikke forstår..
Det har intet at sige, det er en læsbarheds konvension
(-e $f) er det samme som ( -e $f )
det sidste er bare nemmere at overskue, især når det er lange udtryk.
Se 'Perl Best Practices' hvis du har adgang til den bog.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.