Schrift
[thread]6994[/thread]

Startscript: Kleines Problem mit meinen Ideen ein Tea (Seite 4)

Leser: 1


<< |< 1 2 3 4 >| >> 35 Einträge, 4 Seiten
Crian
 2005-05-18 13:24
#54962 #54962
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=J-jayz-Z,17.05.2005, 17:08][..] schreibt, sollte einem, solange es für die anderen keine Zumutung ist zu lesen, durchaus selbst überlassen sein..
Oder nicht?[/quote]
Nein ;)

Es gibt einen sinnvollen Pseudostandard in perldoc perlstyle.

Gründe, sich an einen solchen Standard zu halten:

* Erleichterter Austausch mt anderen Entwicklern (z.B. hier).
* Einheitliches "Schrift"-Bild in mit anderen gemeinsam entwickelten Programmen.
* Einheitliches "Schrift"-Bild aller Programme einer Firma.
* Einheitliches "Schrift"-Bild aller Perlprogramme (wenn sích alle dran halten würden).
* ...

Ich kann auch darüber hinwegsehen, wenn die Liebhaber der geknuddelten elses mal wieder zuschlagen oder so, und auch wenn jemand nun unbedingt seinen cruden Stil schreiben will (er sollte dann aber nicht dauerhaft große Hilfsbereitschaft erwarten), aber wenn jemand anfängt, seinen "Mist" auch noch anderen Leuten zu empfehlen hörts bei mir auf.

Und damit meine ich nicht Strat, bei bestimmten Codesequenzen mache ich es nämich genauso. Hauptsache ist doch letztendlich die Übersichtlichkeit.

Vielleicht bin ich da etwas überempfindlich, weil hier in letzter Zeit einige Leute sehr eigenwillige Einrückungen zeigen, ich weiß jetzt gar nicht, ob Du das warst.

Letztenendes kann ich Dich ja eh nicht dazu bringen, Deinen Stil zu ändern. Aber rummeckern kann ich :D\n\n

<!--EDIT|Crian|1116408310-->
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
BoSSSpy
 2005-05-22 13:45
#54963 #54963
User since
2005-05-15
11 Artikel
BenutzerIn
[Homepage] [default_avatar]
hm, vielleicht versteht ihr mich jetzt besser:

Schreibt doch mal ein Auswahlmenu wie:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
####################################
Was wollen sie tun:
--(1)TS-Serverhosting
--(2)CS-Serverhosting
--(3)NS-Serverhosting
--(4)Root-Serverhosting
--(5)Config. dieses Scriptes
Eingabe:1
...

TS-Hosting, sie haben die Wahl:
--(1)Teamspeak2Server Starten
--(2)Teamspeak2Server Stoppen
--(3)Teamspeak2Server Status
--(4)Teamspeak2Server Passwordabfrage
--(5)Teamspeak2Server Config
--(6)Zurück zum Hauptmenu
Eingabe:6
####################################


Hier macht es Sinn ein "goto" zu setzen ... das ganze millionfach ineinander zu ver-if-schachteln würde zu stressig sein ... besonders dann wenn ich das Scipt denn erweitern will, sprich ähm nen StarCraft-Server oder sonst was zu installieren.

Ich red ja nicht davon das goto ne schleife abschaffen soll ... aber sie macht 100% Sinn auch ohne nen C64!\n\n

<!--EDIT|BoSSSpy|1116755177-->
Bei Fragen, fragen.
Gast Gast
 2005-05-22 16:24
#54964 #54964
JFI: http://search.cpan.org/~reedfish/Term-Menus-1.05/lib/Term/Menus.pm

goto sucks noodles, btw.


p

edit renee: link repariert\n\n

<!--EDIT|renee|1116822909-->
Dubu
 2005-05-22 18:28
#54965 #54965
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=BoSSSpy,22.05.2005, 11:45]
Schreibt doch mal ein Auswahlmenu wie:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
####################################
Was wollen sie tun:
--(1)TS-Serverhosting
--(2)CS-Serverhosting
--(3)NS-Serverhosting
--(4)Root-Serverhosting
--(5)Config. dieses Scriptes
Eingabe:1
...

TS-Hosting, sie haben die Wahl:
--(1)Teamspeak2Server Starten
--(2)Teamspeak2Server Stoppen
--(3)Teamspeak2Server Status
--(4)Teamspeak2Server Passwordabfrage
--(5)Teamspeak2Server Config
--(6)Zurück zum Hauptmenu
Eingabe:6
####################################

[/quote]
Gerne, aber dazu nutze ich weder endlos verschachtelte ifs, noch (*oerks*) gotos, sondern eine allgemeine Menuefunktion und eine passende Datenstruktur:
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/usr/bin/perl
use strict;
use warnings;

# Menuestruktur
my %Menus = (
   main => {
       title => 'Was wollen sie tun:',
       content => [
           [ 'TS-Serverhosting',        [ \&menu, 'tshosting' ] ],
           [ 'CS-Serverhosting',        [ \&menu, 'cshosting' ] ],
           [ 'NS-Serverhosting',        [ \&menu, 'nshosting' ] ],
           [ 'Root-Serverhosting',      [ \&menu, 'roothosting' ] ],
           [ 'Config. dieses Scriptes', [ \&scriptconfig ] ],
           [ 'Ende', [] ],
       ],
   },
   tshosting => {
       title => 'TS-Hosting, Sie haben die Wahl:',
       content => [
           [ 'Teamspeak2Server Starten', [ \&tsserver, 'start' ] ],
           [ 'Teamspeak2Server Stoppen', [ \&tsserver, 'stop' ] ],
           [ 'Teamspeak2Server Status',  [ \&tsserver, 'status' ] ],
           [ 'Teamspeak2Server Passwortabfrage', [ \&tsserver, 'password' ] ],
           [ 'Teamspeak2Server Konfiguration',   [ \&tsserver, 'config' ] ],
           [ 'Zurück zum Hauptmenü',     [] ],
       ],
   },
   cshosting => {
       title => 'CS-Server, Sie haben die Wahl:',
       content => [
           [ 'CS-Server starten', [ \&anyserver, 'CS', 'start' ] ],
           [ 'CS-Server stoppen', [ \&anyserver, 'CS', 'stop'  ] ],
           [ 'Zurück zum Hauptmenü',     [] ],
       ],
   },
   nshosting => {
       title => 'NS-Server, Sie haben die Wahl:',
       content => [
           [ 'NS-Server ...', [ \&anyserver, 'NS', '...' ] ],
           [ 'Zurück zum Hauptmenü',     [] ],
       ],
   },
   roothosting => {
       title => 'Rootserver-Hosting:',
       content => [
           [ 'Rootserver ...', [ \&anyserver, 'Root', '...' ] ],
           [ 'Zurück zum Hauptmenü',     [] ],
       ],
   },
);

# Starte Hauptmenue
menu('main');

exit;

########################################
# Subroutinen
########################################

sub menu {
   my ($menuentry) = @_;

   my $title   = $Menus{$menuentry}{title};
   my @content = @{$Menus{$menuentry}{content}};
   while (1) {
       my $eingabe;
       while (1) {
           # Titel ausgeben
           print "$title\n";
           # Menuepunkte ausgeben
           for (1 .. @content) {
               print "--($_) ", $content[$_-1][0], "\n";
           }
           print "Eingabe: ";
           $eingabe = <STDIN>;
           last if $eingabe =~ /^\d+$/ && $eingabe > 0 && $eingabe <= @content;
           print "\n*** Ungültige Eingabe, bitte neu. ***\n\n";
       }

       # Ausgewaehlte Menuefunktion holen
       my @menufunc = @{$content[$eingabe-1][1]};
       if (@menufunc) {
           # Funktion aufrufen, wenn angegeben
           my $function = shift @menufunc;
           print "\n";
           $function->(@menufunc);
           print "\n";
       } else {
           # ansonsten zurueck
           return;
       }
   }
}

sub tsserver {
   print "=== Die Funktion $_[0] im TSServer wurde aufgerufen ===\n";
}

sub anyserver {
   print "=== Die Funktion $_[1] für den $_[0]-Server wurde aufgerufen ===\n";
}

sub scriptconfig {
   print "=== Hier käme die Skript-Konfiguration ===\n";
}

########################################


Quote
Hier macht es Sinn ein "goto" zu setzen ...

Noe.

Quote
das ganze millionfach ineinander zu ver-if-schachteln würde zu stressig sein ... besonders dann wenn ich das Scipt denn erweitern will, sprich ähm nen StarCraft-Server oder sonst was zu installieren.

Das waere fast noch bloedsinniger.

Quote
Ich red ja nicht davon das goto ne schleife abschaffen soll ... aber sie macht 100% Sinn auch ohne nen C64!

Sehr, sehr selten. Und hier ist kein Fall dafuer. Jedenfalls nicht, wenn man nur den Hauch von strukturierter Programmierung anwenden moechte!
Crian
 2005-05-23 11:51
#54966 #54966
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Sehr schick, Dubu :D

@ goto-user: Für sowas gibts ja schon schöne Module. Perl-Tk, wx-Perl, Curses ... oder man macht es so wie Dubu, aber bestimmt nicht per goto, wenn man irgendwas auf sich und seine Programme hält ;)
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
<< |< 1 2 3 4 >| >> 35 Einträge, 4 Seiten



View all threads created 2005-05-15 07:04.