Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12328[/thread]

Win XP - Perlprogramm startet nicht

Leser: 2


<< >> 5 Einträge, 1 Seite
Snicker
 2008-08-09 21:04
#113273 #113273
User since
2008-08-09
25 Artikel
BenutzerIn
[default_avatar]
Hi,
bin dabei mir Perl beizubringen und bin jetzt auf mein erstes Problem gestoßen
Sobald ich versuche die Datei test2.pl auszuführen, popt für einen kurzen Moment ein Konsolenfenster auf und verschwindet sofort wieder.

Hier der Quellqode
Code (perl): (dl )
1
2
3
4
5
6
7
8
#!d:/Perl/bin/Perl.exe

$PI=3,141592654;
print("Bitte Radius eingeben: ");
$Radius=<STDIN>;
chomp ($Radius);
$UMFANG=2*$PI*$Radius;
print(Der Umfang für einen Kreis mit dem Radius $Radius betraegt: $UMFANG);


Benutze Windows XP mit Service Pack 2. Habe auch ActivePerl-5.8.8.822 auf meinem Rechner installiert.
Linuxer
 2008-08-09 21:15
#113274 #113274
User since
2006-01-27
3881 Artikel
HausmeisterIn

user image
Hi,

das Skript ist fehlerhaft, das Konsolenfenster öffnet sich, der Perl-Interpreter gibt seine Meldung aus und dann schliesst sich das Fenster wieder; hier mal eine korrigierte und überarbeitete Version.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!D:\Perl\bin\Perl.exe

# erzwingt sauberen Umgang mit Variablen und mehr; siehe: perldoc strict
use strict;
# gebe Warnungen aus, wenn was "nicht stimmig" ist; siehe: perldoc warnings
use warnings;

# der Punkt ist Trennzeichen bei Nicht-Ganzen Zahlen; nicht das Komma
my $PI = 3.141592654;

# Klammern beim print-Aufruf sind unüblich; der auszugebene String muss aber in "" oder '' stehen
print "Bitte Radius eingeben: ";

# radius vom Benutzer einlesen und sofort Umbruch entfernen
chomp( my $radius = <STDIN> );

# Berechnung
my $umfang = 2 * $PI * $radius;

# siehe oben
print "Der Umfang fuer einen Kreis mit dem Radius $radius betraegt: $umfang\n";


Zur praktischen Entwicklung unter WinDOS Systemen mögen sich jene äußern, die sich damit häufiger rumplagen als ich...

Die erwähnte Perldoc sollte sich in Deinem System wiederfinden; oder im Netz unter:
http://perldoc.perl.org/

Die im Skript angemerkte perldoc:
http://perldoc.perl.org/strict.html
http://perldoc.perl.org/warnings.html
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Escape
 2008-08-10 00:21
#113276 #113276
User since
2008-07-24
312 Artikel
BenutzerIn
[default_avatar]
Auch unter Windows darf die 'Shebang' Zeile so geschrieben werden:
Code: (dl )
#!D:/Perl/bin/Perl
Windows unterscheidet (leider) nicht zwischen Groß- und Kleinschreibung; daher ist
Code: (dl )
#!d:/perl/bin/perl
auch richtig.

Da die Zeile aber auch nur für CGI-Scripts und dabei auch nur vom Apache (und von diesem auch nur in einem bestimmten Konfigurationsfall) benötigt wird, darf die Zeile ersatzlos entfallen wenn mit dem IIS gearbeitet wird oder das Script nicht als CGI-Anwendung vorgesehen ist.
Die Deutsche Rechtschreibung ist Freeware; Du darfst sie kostenlos nutzen – aber sie ist nicht Open Source, d.h. Du darfst sie nicht verändern und/oder in veränderter Form veröffentlichen.
Snicker
 2008-08-11 23:04
#113370 #113370
User since
2008-08-09
25 Artikel
BenutzerIn
[default_avatar]
Danke für eure Hilfen!
Das Programm funktioniert jetzt.
topeg
 2008-08-12 15:09
#113390 #113390
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Um das Konsolenfenster offen zu halten kann man am Ende des Programmes ein <STDIN> setzen, dann wartet das Programm bis man "Return" drückt um sich zu beenden.
<< >> 5 Einträge, 1 Seite



View all threads created 2008-08-09 21:04.