Thread RDW #1 - Rätsel der Woche Nummer eins (112 answers)
Opened by Crian at 2004-07-08 21:52

Crian
 2004-07-08 21:52
#83954 #83954
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
 RDW #1 - Rätsel der Woche Nummer 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Regeln: * Bitte nicht vor Ablauf der ersten 72 Stunden ( = drei Tage )
~~~~~~~ nach Veröffentlichung Hinweise (Spoiler) oder Lösungen ver-
öffentlichen!

* Wenn diese Zeit abgelaufen ist, werde ich einen Thread mit
passendem Titel erstellen, in dem die Lösungen gepostet werden
und diskutiert werden können.

* Die Lösungen sollten nicht nur gepostet, sondern auch an mich
gemailt werden, damit ich sie testen, "bewerten" und zu-
sammenfassen kann.
Die Adrese dafür lautet:

crian <---AT---> perl <---MINUS---> community <---DOT---> de

Im Betreff sollte 'RDW' und die Nummer des Rätsels stehen.
Hilfreich wäre neben dem Quellcode der Username im Forum
sowie Perl- und OS-Version, falls Du diese kennst.

* Verständnisfragen dürfen in diesem Thread gestellt werden, aber
Tipps und (Teil-) Lösungen sind hier unerwünscht.

* Ich werde die eingeschickten Programme im Netz zur Verfügung
stellen, so dass gerade lange Quellcodes nicht (komplett)
gepostet werden müssen.



Aufgabe: Du sollst ein Programm schreiben, das ausgehend von dem Verzeichnis,
~~~~~~~~ von dem aus der Benutzer dieses Programm startet die Dateien dieses
Verzeichnisses und all seiner Unterverzeichnisse in eine Struktur
der folgenden Art einliest:


%dir = ( dir1 => { subdir1.1 => { file1.1.1 => '',
file1.1.2 => '',
},
subdir1.2 => { file 1.2.1 => '',
},
subdir1.3 => {
},
file1.1 => '',
file1.2 => '',
file1.3 => '',
},
dir2 => { file2.1 => '',
},
file1 => '',
file2 => '',
file3 => '',
);

Verzeichnisstruktur dazu:

./
./dir1/
./dir1/subdir1.1/
./dir1/subdir1.1/file1.1.1
./dir1/subdir1.1/file1.1.2
./dir1/subdir1.2/
./dir1/subdir1.2/file1.2.1
./dir1/subdir1.3/
./dir1/file1.1
./dir1/file1.2
./dir1/file1.3
./file1
./file2
./file3

Bau in Dein Programm eine Funktion ein, die die erzeugte Daten-
struktur ausgibt und rufe diese im Defaultfall auf.



Extras: * Wie sollen Softlinks behandelt werden (wenn Dir das nichts sagt,
~~~~~~~ kümmer Dich nicht weiter drum)?
* Welche Optionen findest Du sinnvoll? Bau ein, was Du für sinnvoll
hältst.
* Nach Möglichkeit sollte das Programm mit den unterschiedlichen
Directorytrennern von verschiedenen Betriebssystemen zurecht
kommen. Wenn Du aber nicht weißt, wie Du das elegant lösen kannst,
lass es weg.
\n\n

<!--EDIT|Crian|1089310247-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Antworten mit Zitat

View full thread RDW #1 - Rätsel der Woche Nummer eins