byron1778
19-06-2007, 12:24
Hallo Forum,
bei meinem Programm Wochentagsberechnung bekomme ich immer die Fehlermeldung: Use of uninitialized value in addition (+) at ./wochentagberechnung.pl line 105, <STDIN> line 3.
Ich habe mir schon die Zeilen immer wieder und wieder angesehen, auch ob ich doppelte Einträge vielleicht habe, aber leider komme ich nicht dahinter, wo mein Fehler liegen soll, bzw. auch welche Fährte mich der Hinweis bringen soll?
Wenn mir jemand einen Tipp geben könnte.
Danke vielmals.
Hier das Script!
#!/bin/perl -w
print "\n";
print "******************\n";
print "*Datumsberechnung*\n";
print "******************\n";
print "\n";
print "Eingabe des Tages (1 .. 31)\n";
print "***************************\n\n";
$tagesziffer = <STDIN>;
$ergebnis_aus_tagesziffer = $tagesziffer % 7;
print "Eingabe des Monats\n";
print "******************\n\n";
@array = qw { Jan Feb Mar Apr Mai Juni Juli Aug Sep Oct Nov Dec };
foreach (@array) {
print $_ . "\n";
}
$monatseingabe = <STDIN>;
if ("$monatseingabe" eq "Jan"){$ergebnis_aus_monatseingabe=0;
}
elsif ("$monatseingabe" eq "Feb"){$ergebnis_aus_monatseingabe=3;
}
elsif ("$monatseingabe" eq "Mar"){$ergebnis_aus_monatseingabe=3;
}
elsif ("$monatseingabe" eq "Apr"){$ergebnis_aus_monatseingabe=6;
}
elsif ("$monatseingabe" eq "Mai"){$ergebnis_aus_monatseingabe=1;
}
elsif ("$monatseingabe" eq "Juni"){$ergebnis_aus_monatseingabe=4;
}
elsif ("$monatseingabe" eq "Juli"){$ergebnis_aus_monatseingabe=6;
}
elsif ("$monatseingabe" eq "Aug"){$ergebnis_aus_monatseingabe=2;
}
elsif ("$monatseingabe" eq "Sep"){$ergebnis_aus_monatseingabe=5;
}
elsif ("$monatseingabe" eq "Oct"){$ergebnis_aus_monatseingabe=0;
}
elsif ("$monatseingabe" eq "Nov"){$ergebnis_aus_monatseingabe=3;
}
elsif ("$monatseingabe" eq "Dec"){$ergebnis_aus_monatseingabe=5;
}
print "Das Jahr eingeben\n";
$jahr=<STDIN>;
print "\n";
#Jahresziffer extrahieren
$jahresziffer = substr($jahr,2);
$ergebnis_aus_jahresziffer = ($jahresziffer + $jahresziffer / 4) % 7;
#Jahrhundertziffer extrahieren und berechnen
$ergebnis_aus_jahrhundertziffer = ($jahr % 4 - 3) * (-2);
$ist_schaltjahr = ($jahr % 4 == 0) && ($jahr % 100 != 0) || ($jahr % 400 == 0);
if (! $ist_schaltjahr)
{
$ergebnis_aus_schaltjahr = 0;
print "Kein Schaltjahr\n";
}
else
{print "Ist ein Schaltjahr\n\n";
$ergebnis_aus_schaltjahr = 6;}
$ende=($ergebnis_aus_tagesziffer)+($ergebnis_aus_m onatseingabe)+($ergebnis_aus_jahresziffer)+($ergeb nis_aus_jahrhundertziffer)+($ergebnis_aus_schaltja hr);
print "$ende\n";
bei meinem Programm Wochentagsberechnung bekomme ich immer die Fehlermeldung: Use of uninitialized value in addition (+) at ./wochentagberechnung.pl line 105, <STDIN> line 3.
Ich habe mir schon die Zeilen immer wieder und wieder angesehen, auch ob ich doppelte Einträge vielleicht habe, aber leider komme ich nicht dahinter, wo mein Fehler liegen soll, bzw. auch welche Fährte mich der Hinweis bringen soll?
Wenn mir jemand einen Tipp geben könnte.
Danke vielmals.
Hier das Script!
#!/bin/perl -w
print "\n";
print "******************\n";
print "*Datumsberechnung*\n";
print "******************\n";
print "\n";
print "Eingabe des Tages (1 .. 31)\n";
print "***************************\n\n";
$tagesziffer = <STDIN>;
$ergebnis_aus_tagesziffer = $tagesziffer % 7;
print "Eingabe des Monats\n";
print "******************\n\n";
@array = qw { Jan Feb Mar Apr Mai Juni Juli Aug Sep Oct Nov Dec };
foreach (@array) {
print $_ . "\n";
}
$monatseingabe = <STDIN>;
if ("$monatseingabe" eq "Jan"){$ergebnis_aus_monatseingabe=0;
}
elsif ("$monatseingabe" eq "Feb"){$ergebnis_aus_monatseingabe=3;
}
elsif ("$monatseingabe" eq "Mar"){$ergebnis_aus_monatseingabe=3;
}
elsif ("$monatseingabe" eq "Apr"){$ergebnis_aus_monatseingabe=6;
}
elsif ("$monatseingabe" eq "Mai"){$ergebnis_aus_monatseingabe=1;
}
elsif ("$monatseingabe" eq "Juni"){$ergebnis_aus_monatseingabe=4;
}
elsif ("$monatseingabe" eq "Juli"){$ergebnis_aus_monatseingabe=6;
}
elsif ("$monatseingabe" eq "Aug"){$ergebnis_aus_monatseingabe=2;
}
elsif ("$monatseingabe" eq "Sep"){$ergebnis_aus_monatseingabe=5;
}
elsif ("$monatseingabe" eq "Oct"){$ergebnis_aus_monatseingabe=0;
}
elsif ("$monatseingabe" eq "Nov"){$ergebnis_aus_monatseingabe=3;
}
elsif ("$monatseingabe" eq "Dec"){$ergebnis_aus_monatseingabe=5;
}
print "Das Jahr eingeben\n";
$jahr=<STDIN>;
print "\n";
#Jahresziffer extrahieren
$jahresziffer = substr($jahr,2);
$ergebnis_aus_jahresziffer = ($jahresziffer + $jahresziffer / 4) % 7;
#Jahrhundertziffer extrahieren und berechnen
$ergebnis_aus_jahrhundertziffer = ($jahr % 4 - 3) * (-2);
$ist_schaltjahr = ($jahr % 4 == 0) && ($jahr % 100 != 0) || ($jahr % 400 == 0);
if (! $ist_schaltjahr)
{
$ergebnis_aus_schaltjahr = 0;
print "Kein Schaltjahr\n";
}
else
{print "Ist ein Schaltjahr\n\n";
$ergebnis_aus_schaltjahr = 6;}
$ende=($ergebnis_aus_tagesziffer)+($ergebnis_aus_m onatseingabe)+($ergebnis_aus_jahresziffer)+($ergeb nis_aus_jahrhundertziffer)+($ergebnis_aus_schaltja hr);
print "$ende\n";