Thread Hilfestellung bei Datei einlesen (32 answers)
Opened by jan99 at 2008-12-12 02:35

topeg
 2008-12-13 19:14
#117194 #117194
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Perl nutzt die üblichen Funktionen eines systems, oder emuliert sie wenn sie nicht zur Verfügung stehen.
Aber konvertierungen macht er nur bedingt. Es hängt davon ab, wie viel Arbeit sich die Programmierer für die Portierung gemacht haben. Aber im allgemeinen wird fast nichts konvertiert.
Das betrifft nicht nur open,opedir sondern auch time und alle anderen Funktionen, die Systemcals repräsentieren. Bei Systemen, die POSIX-konform sind fällt das meinst nicht auf, jedoch bei wenn man Systeme hat, die sich anders verhalten, kann man schnell auf die Nase fallen.
Nehmen wir das open. Unter Windows ist sowohl "\" als auch "/" möglich, da die Programmierer das so vorgesehen haben. Unter MACOS <10 (MacOSX hst einen BSD Unterbau) bekommt man halt Probleme.

Nun konkret.
Öffnest du eine Datei mit dem Namen "/home/test/foo.txt" wird unter Windows unter "C:\home\test\foo.txt" gesucht findet aber auch "C:\HOME\TEST\FOO.TXT"
Problem: Was passiert wenn das Programm auf "D:" liegt? dann wird "D:\home\test\foo.txt" gesucht, oder doch in "C:\home\test\foo.txt" wenn das Arbeitsverzeichnis dort ist (was nicht gleich dem Verzeichnis sein muss in dem man sich gerade befindet).
Bei MacOS (<10) sucht er "SC00:/home/test/foo.txt" wobei "/home/test/foo.txt" der vollständige Name der Datei ist. Nicht erlaubtes Zeichen ist nur ":".
Vor allem die nicht erlaubten Zeichen können Probleme bereiten. Windows hat da eine ganze Reihe von Zeichen, TOS und CPM stoßen sich auch an ein paar, BEOS ist weitgehend POSIX konform und erlaubt alle Zeichen ebenso OS2.

Solange du nur auf einem System arbeitest, fällt das nicht auf. wenn du aber versuchst Code oder generierte Daten zu transferieren, kann es zu Problemen kommen.

Vor allem von POSIX-Systemen auf andere kann es reichlich kompliziert werden.

View full thread Hilfestellung bei Datei einlesen