/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
variable problem...
Fra : Flemming Hansen


Dato : 22-05-02 13:19

hej,

jeg har en "huge" script som består af flere hundrede kilobytes. Flere
brugere har adgang til scriptet samtidigt. Jeg har delt scriptet ud i flere
stykker for at have nemmere overblik. Scriptet går ud på at læse og skrive
fra nogle filer, behandle dem og smide dem på skærmen.

Mit problem er at nogle gange bliver nogle bestemte (måske allesammen endda)
variabler blanke. Altså f.eks. en variable læser en fil som indeholder et ID
nummer. Men nogle gange returnerer variablen NULL, altså tildeles ikke noget
værdi. Kan nogen komme med et bud på årdagen? jeg bruger ikke "strict" da
jeg får nogle fejl meddelelse som jeg ikke forstår. Er det måske derfor? Jeg
bruger flock, så der skulle ikke være noget problem sharing....

Tak på forhånd



 
 
Martin Moller Peders~ (22-05-2002)
Kommentar
Fra : Martin Moller Peders~


Dato : 22-05-02 14:23

In <acg2h1$2n94$1@news.cybercity.dk> "Flemming Hansen" <fatih@forum.dk> writes:

>hej,

>jeg har en "huge" script som består af flere hundrede kilobytes. Flere
>brugere har adgang til scriptet samtidigt. Jeg har delt scriptet ud i flere
>stykker for at have nemmere overblik. Scriptet går ud på at læse og skrive
>fra nogle filer, behandle dem og smide dem på skærmen.

>Mit problem er at nogle gange bliver nogle bestemte (måske allesammen endda)
>variabler blanke. Altså f.eks. en variable læser en fil som indeholder et ID
>nummer. Men nogle gange returnerer variablen NULL, altså tildeles ikke noget
>værdi. Kan nogen komme med et bud på årdagen? jeg bruger ikke "strict" da
>jeg får nogle fejl meddelelse som jeg ikke forstår. Er det måske derfor? Jeg
>bruger flock, så der skulle ikke være noget problem sharing....

Kan du poste den del af koden, hvor du bruger flock. Du bruger muligvis
flock forkert ?

Mvh
Martin




Flemming Hansen (22-05-2002)
Kommentar
Fra : Flemming Hansen


Dato : 22-05-02 15:23

> Kan du poste den del af koden, hvor du bruger flock. Du bruger muligvis
> flock forkert ?

open(COUNTS,"<$root/count.txt") || error("Can't open the
file($root/count\.txt) $0: $!");

$counts = <COUNTS>;

close(COUNTS);

$loops = 3;

if ($loops <= $counts){


# check log times, remove expired

open(CCOO,">$root/count\.txt") || error("Can't open the
file($root/count\.txt) $0: $!");

require "$cgi_root/lock_stuff.cgi";

&lock("CCOO");

print CCOO "0";

&unlock("CCOO");

close(CCOO);



opendir(STAT,"$root/log/users") || print "DIRECTORY READING ERROR
(log/users)<BR>\n";

@dir = readdir(STAT);

closedir(STAT);

foreach $line (sort @dir){

if ($line ne '.' && $line ne '..'){

$kick_idle_user = $line;

$kick_idle_user =~ s/\.cgi//gi;

open(USER,"<$root/log/users/$line") || die "open $root/log/users/$line: $!";

$user_read = <USER>;

close(USER);

$check = time() - $user_read; #count seconds

#hvis brugeren er idle:

if ($check >= $idle){

require "$cgi_root/get_user_info.cgi";

@count_user_data = &get_user_info($kick_idle_user);


if($count_user_data[0] == 1){

$count_rooms = $count_user_data[5];

}elsif($count_user_data[0] == 0){

$count_rooms = $count_user_data[2];

}

open(KICK_IDDLE,">>$root/rooms/$count_rooms\.cgi") || &error("Can't open the
file($root/rooms/$count_rooms\.cgi) $0: $!");

require "$cgi_root/lock_stuff.cgi";

&lock("KICK_IDDLE");

print KICK_IDDLE "*** <FONT COLOR=\"$amc\"
SIZE=\"$amc_size\"><B>$count_user_data[1]</b> has been kicked for idle time
<font color=\"ff0000\"><b>($check
seconds)</b></font>.<blink>Bye!</blink></FONT>\n";

&unlock("KICK_IDDLE");

close(KICK_IDDLE);


require "$cgi_root/kick_stuff.cgi";

&kick($kick_idle_user, "idle");

}

}

}

}

}



sub lock {

if($^O !~ /win/i){

flock($_[0],LOCK_EX);

}else{

binmode($_[0]);

}

#seek($_[0], 0, 2);

}

sub unlock {

if($^O !~ /win/i){

flock($_[0],LOCK_UN);

}

}

Well, såda ser det circa ud. Problemet opstår i $check = time() -
$user_read; #count seconds .. nogle gange bliver $user_read lige med NULL,
og dette forstår jeg ikke..




Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste