GoTo, bzw. weiterleitung im Code?

Suchfunktion

Erfahrenes Mitglied
Hallo,

ich habe gerade erst angefangen mit Perl, von daher habe ich erst ca. 30min Wissen in der Sprache. Ich habe mit jetzt ein Script geschrieben, in das ich eine Artikelbezeichnung eingeben kann und das mich dann nach den Seriennummern fragt.
Die Daten werden dann alle in einer Textdatei abgespeichert.
(Fuer den Wareneingang bei uns in der Firma. Eigentlich mehr so Just4Fun als wirklich benoetigt.. wollte nur etwas sinnvolles programmieren ;-) )

Momentan ist es leider nicht moeglich, mehrere Artikel in einem Durchgang einzufuegen, also nach jedem Artikel muss man das Script neu starten.

Code:
$file = 'C:\serial.txt';
$i = 1;
$sn = "";
open(INFO, ">>$file");
print "Artikel: ";
$name = <STDIN>;
chomp($name);
my $filesize = -s $file;
if ($filesize >= 1) {
  print INFO "\n";
  print INFO "\n";
  print INFO "\n";
}
#->Sprungmarke Point1
print INFO "[---   $name   ---] \n";
print "\n";
print "Seriennummern fuer $name eingeben\n";
while ($sn ne "q") {
  print 'SN '.$i.': ';
  $sn = <STDIN>;
  chomp($sn);
  if ($sn ne "q" && $sn ne "") {
    print INFO "$sn#\n";
    $i++;
  }
}
$artikelanzahl = $i - 1;
print INFO "\n";
print INFO "\n";
print INFO "$artikelanzahl Artikel erfasst.\n";
#->Sprungmarke Point3
print "Weiteren Artikel anlegen [j/n]: ";
$again = <STDIN>;
chomp($again);
if ($again == "j") {
  print "\n";
  print "\n";
  print INFO "\n";
  print INFO "\n";
  #->GoTo Point1
} elseif ($again == "n") {
  #->GoTo Point2
} else {
  #->GoTo Point3
}

#->Sprungmarke Point2
close(INFO);

Wie mache ich es, dass ich bei #->GoTo Point1 zu #->Sprungmarke Point1 (und das selbe mit Point2 und Point3) geleitet werde?

Ich kenne das von VB mit GoTo, aber weiss aus erfahrung, dass GoTo's nicht sehr professionell sind, also ist alles erlaubt, was geht ;-)


Thanks!
 
Ich habe zwar selber noch nie goto bei Perl verwendet, aber du solltest es schon fast richtig haben.

Code:
label2: 
print "Hallo"; 
goto label2;

ALs Anfänger ist es ganz hilfreich in die sehr umfassende Dokumentation reinzugucken.
mit
Code:
perldoc perl
gibt es eine Übersicht
mit
Code:
perldoc -f goto
kannst du zu deiner Frage mal reingucken (ist nicht so doll, ich gebs zu)
 
Du solltest Dich dringend mal mit strukturierter Programmierung befassen, vor allem dann, wenn aus dem just for Fun irgendwann ein "Firma benutzt es" wird.

Statt eines GoTo sollte man in solchem Falle besser eine Schleife verwenden.

vop
 
Strukturierte Programmierung?
Theoretisch kein Problem.

Es geht hier ausschliesslich darum dass ich bisher keine Ahnung von perl hatte und daher einfach wissen wollte wie es geht.

Das Programm oben habe ich lediglich geschrieben, weil ich eher der 'learning by doing'-Typ bin.

Programmieren an sich ist kein Thema,
mache ich schon etwas laenger.. aber bevor ich anfange son mikriges Programm korrekt zu strukturieren, kollisionsabfragen, sub's und sonstige nette 'kleinigkeiten' zu benutzen, versuche ich, es erstmal zum laufen zu bringen ;)

Und da ich das Ding nur fuer mich benutze, wird aus dem just4fun kein "Firma benutzt es".

Und dass das mit Schleifen geht, das weiss ich, allerdings ist mir der Aufwand zu hoch, da ich nicht den Aufbau von Funktionen lernen moechte, sondern die Befehle und Anweisungen von perl ;)
 
Das schöne an Perl ist, dass man im Basic Stil oder auch im OO Stil programmieren kann.
Jeder so wie er will. Darum mach für dich weiter mit goto und ich werde z.B. weiter machen mit Klassen und Referenzen auf ein Array mit Hashreferenzen :)
 
Zurück