Schrift
[thread]8441[/thread]

Frage zu "use strict;"



<< >> 3 Einträge, 1 Seite
docsnyder
 2006-10-23 12:21
#71069 #71069
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallöle!

Ich habe den folgenden Code:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
local(*FD);

sub lockSection {
my($self, $lockFile) = @_;
my($rc);

return(0) if ( ! $lockFile );

open(FD, ">", $lockFile) or return(0);

$lockHandles{$lockFile} = FD if ( ($rc=flock(FD, LOCK_EX | LOCK_NB)) );

return($rc);
}
}


und bekomme bei Verwendung von "use strict;" die Fehlermeldung:

Code: (dl )
1
2
3
Bareword "FD" not allowed while "strict subs" in use at BHFTools.pm line 182.
Compilation failed in require at ./BTtestLock.pl line 3.
BEGIN failed--compilation aborted at ./BTtestLock.pl line 3.


Zeile 182 ist

Code: (dl )
$lockHandles{$lockFile} = FD if ( ($rc=flock(FD, LOCK_EX | LOCK_NB)) );


des Moduls BHFTool.pm und Zeile 3 ist

Code: (dl )
use BHFTools;


des Test-Programms.

Ohne "use strict;" läuft der Code korrekt.

Was mache ich falsch?

Gruß, Doc

P.S. FD muss ich mir merken, weil ich später beim unlock ein close(FD) ausführen muss.
pq
 2006-10-23 12:33
#71070 #71070
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=docsnyder,23.10.2006, 10:21]Zeile 182 ist

Code: (dl )
$lockHandles{$lockFile} = FD if ( ($rc=flock(FD, LOCK_EX | LOCK_NB)) );
[/quote]
du musst perl auch sagen, dass das ein filehandle ist.
in flock() und anderen funktionen weiss perl das.
Code: (dl )
$lockHandles{$lockFile} = *FD if $rc=flock(FD, LOCK_EX | LOCK_NB);
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
docsnyder
 2006-10-23 12:51
#71071 #71071
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@pq

Danke!
<< >> 3 Einträge, 1 Seite



View all threads created 2006-10-23 12:21.