Schrift
[thread]6768[/thread]

Problem beim Auslesen einer Datei: war: kjx2312.ght

Leser: 1


<< |< 1 2 >| >> 16 Einträge, 2 Seiten
Gast Gast
 2005-03-08 13:06
#52417 #52417
Hi @all

Ich möchte mich zu erst einmal vorstellen.

Ich heiße Sebastian bin 20jahre alt und beschäftige mich seit 14Tagen mit der Programmierung unter Perl.
Daraus kann man schließen das ich noch nicht soooo die Ahnung habe was das thema Programmieren angeht. Ich habe mir das Buch "Perl6 das Einsteigerseminar" gekauft und da ist ein Beispiel dabei das einfach nicht funktionieren möchte.
Es handelt sich dabei um ein kleines Passwortprogramm wo ich im Notepad ein passwort schreiben soll und das unter dem namen kjx2312.ght speichern muss. Bis dahin ist das ja alles kein Prob. dann soll ich in Perl(ide)...
Auschnitt des Beispiels:
Code: (dl )
1
2
open (EINLESEN, "<kjx2312.ght"); 
$passwort = <EINLESEN>;

wenn ich das dann ausführe habe ich denn anschein das er die Textdatei einfach nicht unter Perl öffnet. Zwar werde ich aufgefordert mein Passwort ein zu geben aber es ist immer falsch. ich hoffe das ihr damit etwas anfangen könnt;-) Ich danke schon mal im voraus
mfg Sebastian
ps.: hier noch meine mail: seb dot hess |at| onlinehome dot de

edit renee: Mail-Adresse wegen Spamgefahr verändert... und ne Runde [code]-Tags spendiert...\n\n

<!--EDIT|renee|1110280670-->
renee
 2005-03-08 13:15
#52418 #52418
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hallo Sebastian,

da es Sinn eines Forums ist, Antworten öffentlich zu posten, schreibe ich keine E-Mail...

Wie sieht Dein Dein Programm vollständig aus??

Mach mal statt:
Code: (dl )
open (EINLESEN, "<kjx2312.ght"); 

das hier:
Code: (dl )
open (EINLESEN, "<kjx2312.ght") or die $!; 


So was nennt man Fehlerbehandlung. Sollte ein Fehler beim Öffnen der Datei auftreten, so wird Dir das mitgeteilt...

Ich hoffe, Du benutzt auch strict (http://wiki.perl-community.de/bin/view/Wissensbasis/UseStrict )..\n\n

<!--EDIT|renee|1110282564-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
overtrust
 2005-03-08 13:20
#52419 #52419
User since
2005-03-08
7 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
open (EINLESEN, "<kjx3212.ght");
$passwort = <EINLESEN>;
chomp ($passwort);
close (EINLESEN);
$z = 1;
while ($z<=3)
{
print "\n";
print "Bitte Kennwort (Versuch nr.: $z):";
$eingabe = <>;
chomp ($eingabe);
if ($eingabe ne $passwort)
{
print "Leider falsch!!\n";
}
else
{
die "ok,Zutritt erteilt!\n";
}
$z++
}

so sieht es komplett aus.\n\n

<!--EDIT|renee|1110281040-->
renee
 2005-03-08 13:26
#52420 #52420
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach mal:
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
#! /pfad/zu/perl.exe

use strict;
use warnings;

open (EINLESEN, "<kjx3212.ght") or die $!;
my $passwort = <EINLESEN>;
chomp ($passwort);
close (EINLESEN);

my $z = 1;
while ($z<=3){
print "\n";
print "Bitte Kennwort (Versuch nr.: $z):";
my $eingabe = <STDIN>;
chomp ($eingabe);
if ($eingabe ne $passwort){
print "Leider falsch!!\n";
}
else{
die "ok,Zutritt erteilt!\n";
}
$z++
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
overtrust
 2005-03-08 13:43
#52421 #52421
User since
2005-03-08
7 Artikel
BenutzerIn
[default_avatar]
Er zeigt mir jetzt an das er die datei nicht finden kann. ist das durch:"or die $!"? das heißt ja: "oder stirb" aber was hat $! zu bedeuten?
wie gesagt ich lerne noch!!!!!!!!!!!
Relais
 2005-03-08 13:47
#52422 #52422
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=renee,08.03.2005, 12:15]
Code: (dl )
open (EINLESEN, "<kjx2312.ght") or die $1;
[/quote]
es muss $! heissen, nicht $1.

Code: (dl )
open (EINLESEN, "<kjx2312.ght") or die $!;
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Relais
 2005-03-08 13:49
#52423 #52423
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=overtrust,08.03.2005, 12:43]was hat $! zu bedeuten?[/quote]
in $! steht der Fehler, den das Betriebssystem zurueckgegeben hat.

Info zu $! findest Du in perldoc perlvar
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
renee
 2005-03-08 13:50
#52424 #52424
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Relais,08.03.2005, 12:47][quote=renee,08.03.2005, 12:15]
Code: (dl )
open (EINLESEN, "<kjx2312.ght") or die $1;
[/quote]
es muss $! heissen, nicht $1.

Code: (dl )
open (EINLESEN, "<kjx2312.ght") or die $!;
[/quote]
Hab's geändert, im anderen Posting war's gleich richtig...

Auszug aus perldoc perlvar:
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
       $OS_ERROR
$ERRNO
$! If used numerically, yields the current value of
the C "errno" variable, or in other words, if a
system or library call fails, it sets this vari-
able. This means that the value of $! is meaning-
ful only immediately after a failure:

if (open(FH, $filename)) {
# Here $! is meaningless.
...
} else {
# ONLY here is $! meaningful.
...
# Already here $! might be meaningless.
}
# Since here we might have either success or failure,
# here $! is meaningless.

In the above meaningless stands for anything:
zero, non-zero, "undef". A successful system or
library call does not set the variable to zero.

If used as a string, yields the corresponding sys-
tem error string. You can assign a number to $!
to set errno if, for instance, you want "$!" to
return the string for error n, or you want to set
the exit value for the die() operator. (Mnemonic:
What just went bang?)

Also see "Error Indicators".
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
overtrust
 2005-03-08 14:02
#52425 #52425
User since
2005-03-08
7 Artikel
BenutzerIn
[default_avatar]
kennt ihr seiten wo ich die Befehle nachlesen kann? zb.: my bedeutet....
Versteht ihr was ich meine? So etwas wie ein Duden für Perl??? ein freund meinte ich soll auf www.selfhtml 8.0 schauen.
bitte um rückantwort
danke
mfg Sebastian
Taulmarill
 2005-03-08 14:46
#52426 #52426
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
selfhtml ist gut für html, css, javascript, etc. aber für perl gibt's besseres.
wenn du unter linux/unix arbeitest, kannst du über die komplette doku über den befehl perldoc abfragen. tippe einfach mal perldoc perlintro ein.
unter windows gibt's das wohl auch, aber erfahrungsgemäss sind wondowsuser etwas konsolenscheu (was aber auch an der schrecklichen windows shell liegt). aber einige haben sich die mühe gemacht, die perldoc in html zu formatieren, z.b. hier http://perldoc.perldrunks.org/. in unserem wiki läuft im moment ein projekt zur übersetzung in's deutsche, ist aber bei weitem noch nicht komplet, die perldoc ist halt auch riesig.\n\n

<!--EDIT|Taulmarill|1110286038-->
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2005-03-08 13:06.