Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12449[/thread]

readdir bringt unterschiedliche ergebnisse



<< >> 7 Einträge, 1 Seite
Flashbaer
 2008-09-05 16:43
#114295 #114295
User since
2008-09-05
9 Artikel
BenutzerIn
[default_avatar]
Hallo Community, ich bin heu hier und hoffe mal ich treff jetzt gleich das richtige forum für meine Frage :-)

Jetzt zum Problem:

System1: Veraltetes Suse (ca. 3 Jahre Alt, Kernel 2.4.18, Perl 5.6.1)
System2: Centos 5 (Kernel 2.6.18, Perl 5.8.8)

Ich habe in letzter Zeit einige relativ veraltete Perl-Skripte von System1 auf System2 Kopiert und hab jetzt einige Probleme mit der readdir-Funktion.

Und zwar wurde im System1 mit readdir() ein Verzeichnis alphabetisch ausgelesen, was auch super so war.
Auf dem System2 ist es nun aber so, dass die Dateien nicht mehr alphabetisch sondern durcheinander eingelesen werden und weil die Skripte von jemandem programmiert wurde der da nicht drauf geachtet hat dass so was passieren könnte, gibt es kein sort() in den Skripten.

Meine Frage ist jetzt, liegt das "unsortierte" einlesen an der unterschiedlichen Perl-Version oder an den unterschiedlichen Systemen und kann ich es irgendwie so hinbiegen dass die Dateien wieder sortiert eingelesen werden?
Was ich gerne hätte wäre ein kurzer Befehl, mit dem man das ausbügeln kann, da ich eigentlich keine Lust habe, tausende Zeilen Code nach readdir() zu durchsuchen um dann ein sort() hinten dran zu schreiben :-)
Habt ihr ne Ahnung wie ich das machen kann?

Viele Grüße und schon mal vielen Dank fürs Lesen meines ersten Beitrags ;-)
Flashbaer
renee
 2008-09-05 17:16
#114297 #114297
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Perl's readdir liefert die Reihenfolge, die auch das Betriebssystem liefert...

Ist vielleicht das Filesystem ein anderes?

Das Verhalten von readdir kannst Du nicht beeinflussen.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Dubu
 2008-09-05 17:18
#114298 #114298
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Nach allem, was ich weiß, hat readdir() schon immer die Verzeichniseinträge in der Reihenfolge ausgegeben, in der sie vorliegen, ohne Sortierung. Eine alphabetische Reihenfolge wäre reiner Zufall, der z.B. dadurch passieren kann, dass Dateien in alphabetischer Reihenfolge in das Verzeichnis kopiert werden.

Ich hoffe für dich, dass nicht zu viele readdir()s im Code vorkommen.
renee
 2008-09-05 17:29
#114299 #114299
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hey, wir reden hier über Perl: Quellcode einlesen und bei einem readdir ein "sort" hintendran einfügen ;-)







(Ich weiß, dass es nicht ganz so simpel ist *g*)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-09-05 18:20
#114300 #114300
ich habe düster in erinnerung, dass reiserfs die option hatte (hat?) verzeichniseinträge aphanumerisch zu sortieren.
nepos
 2008-09-06 16:53
#114312 #114312
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das ist Gefrickel an falscher Stelle. Wenn das Programm die Namen in alphabetischer Reihenfolge braucht, dann muss man das da fixen und nicht irgendwie im Dateisystem rumbasteln oder aehnlichen Kaese.
Flashbaer
 2008-09-08 13:59
#114342 #114342
User since
2008-09-05
9 Artikel
BenutzerIn
[default_avatar]
Ok ich danke euch für eure Beiträge,
ich denke es ist wirklich besser die Skripte zu ändern als am Betriebssystem rumzufrickeln... Ist zwar mehr arbeit aber wahrscheinlich die sauberere Lösung...
<< >> 7 Einträge, 1 Seite



View all threads created 2008-09-05 16:43.