> > foreach (@users){
> > if($_ ne '.' && $_ ne '..'){
> > open(FILE, "$db/user/$_") || die "can't open user data
file";
> > lock(FILE);
> > @user_data = <FILE>;
> > unlock(FILE);
> > close(FILE);
> > }
> > chomp(@user_data);
> > push(@used, $user_data[5]);
> > }
> >
> > i ovenstående kode laver jeg et array af brugte farver.
>
> Er du sikker på at farven er på 6. linie? Er du sikker på at der ikke
> er ekstra whitespace på linien? Andet støj? Er du sikker på at der
> ikke er ekstra whitespace i din color-liste?a
>
Ja, jeg er sikker på farven er på 6. linje. jeg udskriver indholdet af den
6. linje på skærmen for at checke om den indeholder noget, og den indeholder
altid en farve.
> Du siger jo ikke hvordan user-filerne ser ud.
user filerne består af 7 linjer seperaret af \n f.eks. ser filen sådan ud:
username\n (\n er jo usynligt i filen)
userhost\n
userip\n
user filteret ip\n
user ID\n
user farve\n
time()
>
> En bedre metode er i øvrigt at gemme de brugte farver i en hash:
>
> ++$used{$user_data[5]};
farven er bare en farve kode, hvad er fordelen ved at gemme den i en hash?
hvordan virker ++$used{$user_data[5]} ? den definition har jeg ikke set før
>
>
> > foreach $dummy_color (@color){
> > foreach $dummy_used (@used){
> > if($dummy_color eq $dummy_used){
> > print FILE "- $dummy_color -\n";
> > next;
> >
> > }else{
> > print FILE "-not used $dummy_color -\n";
> > push(@new_color, $dummy_color);
> > last;
> > }
> > }
> > }
>
> Med en hash kan ovenstående se således ud:
>
> foreach $dummy_color (@color){
> if ($used{$dummy_color}){
> print FILE "- $dummy_color -\n";
> next;
> }
> else {
> print FILE "-not used $dummy_color -\n";
> push(@new_color, $dummy_color);
> last;
> }
> }
> Prøv at printe meget mere info ud i din log-fil - nogle gange bliver
> man lidt overrasket over hvad der faktisk er i sine variable.
jeg har ikke adgang til logfilen hvis du tænker på apache log filen. men
hvis det er coor.txt du tænker på her er et eksampel:
-not used 990077 -
-not used cc0066 -
-not used 6600cc -
-not used 00cc66 -
-not used 66cc00 -
-not used ff0033 -
-not used 3399cc -
-not used 996600 -
-not used 123abc -
disse er alle de farve jeg har til rådighed, og ovenstående løkke markerer
dem ikke brugte filer, men 4 af dem er brugt af 4 brugere, o den 5. får
tildelt en af de ovenstående selvom en anden bruger den samme farve.
>
> Ellers prøv at poste et eksempel på de data der er i dine variable,
> ellers er det lidt svært at forklare hvad der går galt.
jeg skriver indholdet af alle variabler på skærmen og har check på indholdet
af dem. Det er derfor jeg kan påstå at der er noget galt