Hallo alle zusammen!
Ich bin gerade mit Perl angefangen.
Perl Programme laufen auf meinem Pc unter Apache, Perl ist installiert.
Einfache Print Anweisungen laufen auch (bis auf Endungen /n), da passiert nichts. Das wäre nicht so das große Problem.
Ich wollte jetzt ein Script ausprobieren das so aussieht:

print "Name : ";
$name = ;
chop($name);
printf(„Hallo, %s !\n“,$name);

Mit soll eine Tastaturabfrage gemacht werden. Meine Browser ignorieren dies aber. Es wird der Text ausgegeben ohne das ich eine Möglichkeit habe etwas einzugeben.
Die CHMOD Rechte habe ich gesetzt(Für dieses Script ist alles zugelassen). Dachte das wäre der Fehler.
Ich habe im Internetversucht etwas darüber zu finden, war aber erfolglos.
Ist bestimmt ein taypischer Anfänger Fehler, deshalb wäre ich für einen Hinweis dankbar.
Gruß Herbert

Erstmal:

$a = ;

kann man auch kürzer schreiben:

$a = ;

Es wird also eine Zeile eingelesen, und zwar von STDIN, normalerweise also Konsole. Ein Browser ist leider keine Konsole und hat weder STDIN, noch STDERR und STDOUT. Diese Eingabe ist nur für lokal gestartete Scripts geeignet, von der Konsole. Wenn du ein Script, egal ob in Perl, PHP, Tcl oder FreePascal mit Hilfe eines Webservers (Apache) an den Browser abschickst (der Browser „beantragt das Dokument“ natürlich zuerst), dann ist eine Eingabe nur über die Input-Felder und Textareas möglich, die HTML bzw. XHTML zur Verfügung stellt.

Aufgrund von HTML kommt auch dein Fehler mit \n. Natürlich macht es keinen Zeilenumbruch, da HTML-Parser bzw. -Interpreter alle Whitespaces (\t, \r, \n und space) nicht berücksichtigt. Du musst schon "
" ausgeben. Oder du änderst die Header und schickst die Daten zum Browser als text/plain statt text/html:

Als erste Ausgabe:

print „Content-Type: text/plain; charset=iso-8859-1\n\n“

Lerne mal HTML http://de.selfhtml.org/

Vielen Dank für die Hilfe und die Antwort.
Den Teil Deiner Antwort der sich auf bezieht versteh ich nun.
Einngaben habe ich bisher über HTML gemacht. In einem Buch über Perl und dann auch im Internet hatte ich die andere Version mit STDIN gesehen.
Was ich mir noch nicht so richtig vorstellen kann ist das mit /n.
Andere Zeichen z.B. \u erzeugt bei mir einen großen Buchstaben, da geht es.
Ich war der Meinung das in Perl wie bei PHP oder ASP eine Umsetzung des Codes in HTML erfolgt.
Selbstverständlich steht in der ersten Zeile #!/perl/bin/perl -w
Gruss Herbert

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Was ich mir noch nicht so richtig vorstellen kann ist das mit
/n.

Ich hoffe, du meinst \n

Andere Zeichen z.B. \u erzeugt bei mir einen großen
Buchstaben, da geht es.

\u meint upper, also \ua würde A ausgeben.
\l meint lower also \lA würde a augeben.

Ich habe bis jetzt diese Zeichen aber nie verwendet. Das sind wohl so Perl’s eigene ESCapies.

\n, \t, \f, \r kommen noch von C.

\n erzeigt eine LN (line feed), ASCII 10
\r erzeugt eine CR (carrige return) ASCII 13
\f erzeugt einen FF (form feed)
\t erzeugt eine HT (horizontal tab)

\t wird wie überall verwendet.
\f - keine Ahnung, ist wahrscheinlich ein Überbleibsel von alten Zeiten.

\n und \r werden bei verschiedenen Betriebssystemen für Zeilenumbrüche verwendet.

Bei MS-DOS, -Windows \r\n
Bei UNIX \n
Bei Apple \r (glaub ich)

Dies sind aber die ASCII-Zeilenumbrüche, die nur für MIME-Type „text/plain“ gelten. HTML-Parser erkennen dies nicht an. Es ist genauso, als ob man einem Japaner etwas auf Deutsch sagen würde.

Ich war der Meinung das in Perl wie bei PHP oder ASP eine
Umsetzung des Codes in HTML erfolgt.

Im Gegensatz zu PHP und ASP wurde Perl nicht für die Web-Programmierung ursprünglich geschaffen, sondern für Textdaten-Verarbeitung, also eigentlich eher für Administrationszwecke unter UNIX. Da Perl aber mit der Zeit sich entwickelte, so drang dieser in viele Bereiche vor: Web-Programmierung, GUI usw. Mit Perl kann man also fast alles machen!

Bei PHP wird der Standard-HTTP-Header für text/html ausgegeben. Die Daten werden also als HTML zum Client geschickt. Diesen Header kann man mit header()-Funktion ändern, z.B. für xml:

header(„Content-Type: text/xml“);

Dies muss natürlich vor der Ausgabe der HTML-Daten stehen.
PHP vereinfacht den Umgang mit HTTP ungeheuer, z.B. mit den session- und cookies-Funktionen. Bei hat so etwas default nicht dabei, man muss auf eigene Kenntnisse oder diverse Module zugreifen. Deswegen ist die Ausgabe des HTPP-Headers auch unbedingt wichtig!

Selbstverständlich steht in der ersten Zeile #!/perl/bin/perl
-w
Gruss Herbert