Unterschied zwischen old_explode und explode in Verbindung mit read_file

Jeder Magier im Mud wird irgendwann über die Funktionen old_explode und explode stossen, spätestens beim studieren der Mudlib. Aber wo liegt der Unterschied zwischen den beiden Funktionen, wenn sie laut manpage doch ein und dasselbe machen?

Man nehme eine Datei mit folgendem Aufbau:

Testdatei
1
2
3
/players/magier/file1
/players/magier/file2
/players/magier/file3

Nun möchte man die Pfadnamen der Datei mittels der Funktion read_file() einlesen:

Beispiel 1: read_file()
1
2
xeval read_file("/players/magier/testdatei");
Result: "/players/magier/file1\n/players/magier/file2\n/players/magier/file3\n"

Das Resultat ist nicht gerade brauchbar, man erhät einen langen String. Um je den einzelnen Pfadnamen zu kriegen, müssen wir also die Datei in ein array einlesen:

Beispiel 2: old_explode()
1
2
xeval old_explode(read_file("/players/magier/testdatei"),"\n");
Result: ({"/players/magier/file1","/players/magier/file2","/players/magier/file3"})

Und nun noch das ganze mit explode():

Beispiel 3: explode()
1
2
xeval explode(read_file("/players/magier/testdatei"),"\n");
Result: ({"/players/magier/file1","/players/magier/file2","/players/magier/file3",""})

Wie man unschwer erkennen kann, hat die efun explode() noch ein weiteres, leeres Feld im Array. Dieses muss man also noch aus dem Array entfernen:

Beispiel 4: explode()
1
2
xeval explode(read_file("/players/magier/testdatei"),"\n")-({""});
Result: ({"/players/magier/file1","/players/magier/file2","/players/magier/file3"})