Thread Nicht Erklärbarer Compile Error (7 answers)
Opened by Aleks at 2007-01-11 17:35

Aleks
 2007-01-11 17:35
#73127 #73127
User since
2006-06-12
19 Artikel
BenutzerIn
[default_avatar]
Hallo Leute!
Ich gehe absolut am Stock...

Ich habe angefangen ein Programm zu schreiben und bekomme immer einen Compile error beim perl -c. Dieser verschwindet wenn ich zwei Zeilen auskommentiere, die gar keinen Fehler enthalten können!

Hier einmal das (bis jetzt) komplette Proggi:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/perl -w

use strict;
use warnings;
use diagnostics;
use Net::Telnet;
use ParseConfigFile;
use ParseConfigFile qw(check_param);

## Funktionen
wrlog{
my $msg = shift;
my $logfile = shift;
open LOG, ">>$logfile" or die "Konnte Logdatei nicht oeffnen";
print LOG scalar(localtime(time)) . " : " . $msg . "\n";
close LOG or die "Konnte Logdatei nicht schliessen";
}

## Hauptprogram
unless ( defined $ARGV[0] && -f $ARGV[0] && -r $ARGV[0] ){
print "Usage: $0 <config_file>\n";
print "Geben Sie bitte einen gueltigen Pfad zu einer lesbaren\n";
print "Konfigurationsdatei ein.\n";
exit 255;
}

my %options = read_file($ARGV[0]);
my @keys=qw(user pass hostsfile logfile);

## Testen ob alle benoetigten Werte im Konfigfile gesetzt sind
unless ( check_param(\@keys, \%options) ){
print "In der Konfigurationsdatei wurde mindestens ein Fehler gefunden.\n";
print "Bitte in folgender Form eintragen: 'schluessel=wert'.\n";
print "Um das '=' Zeichen bitte keine Freizeichen einbauen.\n";
exit 254;
} else { ## Ab hier lauft das Hauptprogramm
my $log = $options{'logfile'};
my $hosts = $options{'hostsfile'};
my $user = $options{'user'};
my $pass = $options{'pass'};

unless ( -f $hosts && -r $hosts ){
wrlog("FEHLER - Das hostsfile kann nicht geoeffnet/gelesen werden. Abbruch", $log);
}
}


und hier die Fehlermeldung:
# perl -c cso_cisco_dsl_upgrade.pl
syntax error at cso_cisco_dsl_upgrade.pl line 20, near "){"
syntax error at cso_cisco_dsl_upgrade.pl line 25, near "}"
cso_cisco_dsl_upgrade.pl had compilation errors (#1)
(F) The final summary message when a perl -c fails.

Uncaught exception from user code:
syntax error at cso_cisco_dsl_upgrade.pl line 20, near "){"
syntax error at cso_cisco_dsl_upgrade.pl line 25, near "}"
cso_cisco_dsl_upgrade.pl had compilation errors.

Durch testen bekam ich herraus das die Meldung so nicht ganz richtig ist.
Wenn ich nämlich Zeile 11 und 17 auskommentiere, dann läuft das perl -c!! Das kann aber nicht sein, weil die Zeilen nur aus:

11: wrlog{
und
17: }

bestehen. Was soll daran Falsch sein?

Sonderzeichen kommen auch nicht in Frage, habe mit od nachgesehen. Habe die Zeilen auch mal im Editor gelöscht und dann von hand neu geschrieben, bringt nichts... Das ganze ist mit perl 5.6.1 und 5.8.7 reproduzierbar..

Hat jemand eine Ahnung was da los sein kann? Ich weiß echt nicht mehr weiter..

Gruß,
Aleks

View full thread Nicht Erklärbarer Compile Error