|< 1 2 3 4 ... 12 >| | 113 Einträge, 12 Seiten |
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
crian@blitz:~/perl/rdw/rdw01> ls -l rdw01_testsuit.tgz
-rw-r--r-- 1 crian users 345 2004-07-08 22:24 rdw01_testsuit.tgz
crian@blitz:~/perl/rdw/rdw01> tar tvzf rdw01_testsuit.tgz
drwxr-xr-x crian/users 0 2004-07-08 22:04:02 rdw01_testsuit/
drwxr-xr-x crian/users 0 2004-07-08 22:03:56 rdw01_testsuit/dir1/
drwxr-xr-x crian/users 0 2004-07-08 22:03:17 rdw01_testsuit/dir1/subdir1.1/
-rw-r--r-- crian/users 0 2004-07-08 22:03:13 rdw01_testsuit/dir1/subdir1.1/file1.1.1
-rw-r--r-- crian/users 0 2004-07-08 22:03:17 rdw01_testsuit/dir1/subdir1.1/file1.1.2
drwxr-xr-x crian/users 0 2004-07-08 22:03:22 rdw01_testsuit/dir1/subdir1.2/
-rw-r--r-- crian/users 0 2004-07-08 22:03:22 rdw01_testsuit/dir1/subdir1.2/file1.2.1
drwxr-xr-x crian/users 0 2004-07-08 22:02:57 rdw01_testsuit/dir1/subdir1.3/
-rw-r--r-- crian/users 0 2004-07-08 22:03:52 rdw01_testsuit/dir1/file1.1
-rw-r--r-- crian/users 0 2004-07-08 22:03:54 rdw01_testsuit/dir1/file1.2
-rw-r--r-- crian/users 0 2004-07-08 22:03:56 rdw01_testsuit/dir1/file1.3
-rw-r--r-- crian/users 0 2004-07-08 22:04:00 rdw01_testsuit/file1
-rw-r--r-- crian/users 0 2004-07-08 22:04:01 rdw01_testsuit/file2
-rw-r--r-- crian/users 0 2004-07-08 22:04:02 rdw01_testsuit/file3
|< 1 2 3 4 ... 12 >| | 113 Einträge, 12 Seiten |