Christian: Ein paar Anfängerfragen zu CGI.

ich bin gerade bei dem Tutorials bei Arrays() angelangt und musste festellen, dass diese mit dem @ erzeugt werden. Dann wird dort geschrieben, das array's dennoch mit $ aufgerufen werden.  
  
Ich habe folgendes Scirpt: #!/usr/bin/perl  
use CGI::Carp qw(fatalsToBrowser);  
print "Content-type: text/html\n\n";  
my @array = ('eins','zwei','drei');  
my $init;  
foreach $init (@array) {  
print "@array\n";  
}  
sleep 0;  
  
Ich habe zuvor bei foreach den array mit $ geschrieben, was dann aber zur keiner Ausgabe führte.  
  
(Okay, foreach ist ein wenig weit, aber ich kenn ihn aus PHP, C)  
  
Nun wird als Ausgabe folgendes gezeigt: eins zwei drei eins zwei drei eins zwei drei .  
  
Nur wieso wird das so ausgegeben? Und wieso kommt keine Freizeile nach jedem Zeichen? Habe ja \n mit eingebaut.  
  
  
~~~~~~~~ Frage 2:  
Und kann CGI auf MySQL Datenbanken zugreifen?  
  
  
  
Danke. Ich würde mich sehr über eine Antwort oder mehrere freuen. Auch Links zu CGI Referenzen usw. wären nicht schlecht.  
  
Danke  
- Christian
  1. Danke. Ich würde mich sehr über eine Antwort oder mehrere freuen. Auch Links zu CGI Referenzen usw. wären nicht schlecht.

    Danke

    • Christian

    Hi Christian,

    zu deinen Fragen kann ich dir leider nicht helfen, da in PHP nicht versiert bin, aber bei den Links kann ich dir helfen.
    Ist eine gut Zusammenfassung über CGI:

    http://www.ztt.fh-worms.de/en/others/sem/ss96/cgi/index.html

    Greetings codeman

    1. hi,

      zu deinen Fragen kann ich dir leider nicht helfen, da in PHP nicht versiert bin

      Macht nix, war ja auch kein PHP.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hallo Christian,

    ich bin gerade bei dem Tutorials bei Arrays() angelangt und musste festellen, dass diese mit dem @ erzeugt werden. Dann wird dort geschrieben, das array's dennoch mit $ aufgerufen werden.  
    

    Meine Glaskugel zeigt mir an: Du redest von Perl! Arrays werden nicht mir $ aufgerufen, höchstens ihre Elemente. Ihre Elemente sind Scalars, daher der Aufruf mit dem $.

    Ich habe folgendes Scirpt: #!/usr/bin/perl
    use CGI::Carp qw(fatalsToBrowser);
    print "Content-type: text/html\n\n";
    my @array = ('eins','zwei','drei');
    my $init;
    foreach $init (@array) {
    print "@array\n";

    Du lässt das gesamte Array ausgeben?!

    }
    sleep 0;

    Was soll das?

    Ich habe zuvor bei foreach den array mit $ geschrieben, was dann aber zur keiner Ausgabe führte.

    (Okay, foreach ist ein wenig weit, aber ich kenn ihn aus PHP, C)

    Aber selbst da sieht die foreach-Schleife doch anders aus, oder?

    Nun wird als Ausgabe folgendes gezeigt: eins zwei drei eins zwei drei eins zwei drei .

    Richtig. Das Array wird drei Mal ausgegeben.

    Nur wieso wird das so ausgegeben? Und wieso kommt keine Freizeile nach jedem Zeichen? Habe ja \n mit eingebaut.

    Nach jedem Zeichen? Also so:

    e
    i
    n
    s

    z
    w
    e
    i
    ...

    ?

    Und kann CGI auf MySQL Datenbanken zugreifen?

    Ja.

    Danke. Ich würde mich sehr über eine Antwort oder mehrere freuen. Auch Links zu CGI Referenzen usw. wären nicht schlecht.

    http://de.selfhtml.org/perl/index.htm

    Beste Grüße

    1. Und was ist nun der Unterschied von CGI und Perl? :S Ich habe mir einen Teil des Links durchgelesen. Bin auf einer anderen Seite wo ich ein Tutorial durchgehe, welches aber nicht so komplett, bzw vollständig ist, wie das hier.

      Nur wo steht geschrieben, was der Unterschied ist?

      1. Hallo,

        Und was ist nun der Unterschied von CGI und Perl?

        Perl ist eine Programmier- (besser Script-)sprache, CGI (Common Gateway Interface) ist eine serverseitige Schnittstelle. Was ein Server ist, weißt du? Und dieser Server stellt eine CGI-Schnittstelle bereit, über die z.B. Perl mit ihm kommunizieren kann.

        Beste Grüße

    2. hallo,

      Und kann CGI auf MySQL Datenbanken zugreifen?
      Ja.

      Nein, kann es nicht. CGI ist eine Schnittstellendefinition. Eine Menge Technologien, die diese Schittstelle benutzen (zum Beispiel Perl) kann aber problemlos mit Datenbanken umgehen.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
  3. Hell-O!

    ich bin gerade bei dem Tutorials bei Arrays() angelangt und musste festellen, dass diese mit dem @ erzeugt werden.

    Soweit richtig.

    Dann wird dort geschrieben, das array's dennoch mit $ aufgerufen werden.

    Dabei kommt es auf den Kontext an. Perl kennt im Wesentlichen den skalaren Kontext ("Strings") und den Listenkontext. Benötigst du den Zugriff auf ein Array als Liste, schreibe @array, wenn du einzelne Elemente eines Arrays benötigst, schreibe $array[index].

    print "Content-type: text/html\n\n";
    my @array = ('eins','zwei','drei');
    my $init;
    foreach $init (@array) {
    print "@array\n";
    }
    Ich habe zuvor bei foreach den array mit $ geschrieben, was dann aber zur keiner Ausgabe führte.

    Wenn du ein Arrayelement ansprechen willst, dann tue es so, wie ich es oben beschrieben habe. Würdest du in deinem kleinen Script $array statt @array verwenden, würde Perl nach einer "Stringvariablen" namens $array suchen, die es aber nicht gibt.

    Nun wird als Ausgabe folgendes gezeigt: eins zwei drei eins zwei drei eins zwei drei .

    Das ist eine Besonderheit bei Perl, da du einer print-Anweisung nicht nur einen String, sondern auch eine Liste zur Ausgabe übergeben kannst. Letztenfalls werden die Listenelemente ausgegeben, mittels der vordefinierten Variable $, kannst du den Trenner zwischen allen Listenelementen festlegen. In deinem Beispiel sähe das kurzerhand so aus:

    my @arr = (1, 2, 3);  
    $, = '|';  
    print @arr;
    

    Ergibt als Ausgabe "1|2|3".

    Und wieso kommt keine Freizeile nach jedem Zeichen? Habe ja \n mit eingebaut.

    Weil dein Inhaltstyp text/html ist, und in HTML macht man Zeilenumbrüche mittels <br>, nicht mittels "\n".

    Und kann CGI auf MySQL Datenbanken zugreifen?

    Bitte unterscheide zwischen Perl und CGI. Zwar werden beide Begriffe oft synonym verwendet, sind es aber nicht. Zum Thema Perl und mySQL gibt es hier einen guten Einstieg:

    http://www.thomas-fahle.de/pub/perl/DBI/index.html

    Auch Links zu CGI Referenzen usw. wären nicht schlecht.

    Ich habe seinerzeit mit dem Perl-Kapitel von SELFHTML angefangen.

    Siechfred

    --
    Hier könnte Ihre Werbung stehen.
    Viel Lärm um nichts || Die neue 1%-Regelung