Clickcount 2

Perl & Ruby

4 svar · 335 visningar · startad av Robba

Medlem sedan juni 200016 inlägg
Trådstart#1

Hur gör jag för att bara läsa in de 5 första raderna ifrån denna db? Nedanstående "script-snutt" läser in samtliga raderna

# write all urls

open(DATA, "$dbfile");
@db = <DATA>;
close(DATA);
foreach (@db) {
($clicks, $url) = split /\|/;
$totclicks = $totclicks+$clicks;
print qq|
<tr>
<td><font face="Tahoma" size="2">$url</font></td>
<td><font face="Tahoma" size="2">$clicks</font></td>
</tr>
|;
}

#2

Prova med att lägg till en until-sats i programmet.

$k=1;
until ($k eq 5){

' Det du vill att programmet skall göra

$k++;
}
Medlem sedan juni 200016 inlägg
#3

Jag är ganska "ny" på CGI/Perl, vad exakt ska jag skriva där det står "Det du vill att programmet skall göra"

Tanken är att scriptet ska läsa in dom 5 länkarna som flest har klickat på, en Topp 5 lista typ!

Tacksam för svar...

#4

Jag är nybörjare även jag.
Men du bör väl även kunna lägga in en räknare som avbryter när du skrivit ut de 5 första raderna.

Förslagsvis något i nedanstående stil.

Men som sagt, jag är nybörjare även jag.

Mvh,
Demo

$antal=1;
open(DATA, "$dbfile");
@db = <DATA>;
close(DATA);
foreach (@db) {
($clicks, $url) = split /\|/;
$totclicks = $totclicks+$clicks;
print qq|
<tr>
<td><font face="Tahoma" size="2">$url</font></td>
<td><font face="Tahoma" size="2">$clicks</font></td>
</tr>
|;
$antal++;

if($antal eq 5){

' Vad som skall ske när 5 rader skrivits ut Typ, "exit;" eller gå till någon subrutin

}
}
Medlem sedan juni 200016 inlägg
#5

Tack, ska testa det senare!

265 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)