Avatar billede kaosa Nybegynder
13. december 2001 - 19:11 Der er 3 kommentarer og
1 løsning

Jeg er ved at lære PERL men er stødt ind på nogle problemer. er der én der vil hlælpe?

Jeg skal prøve at løse en opgave men kan desværre ikke. Opgave formuleringen ser således ud:

1. Consider the enclosed PERL program, webcollect4.pl
  a. Describe exatctly what command line arguments
      webcollect4.pl takes.
  b. The third line of the program is this:
     
      if (!$level) {exit;}

    Explain the function of this line.


Programmet som skal bruges til svarerne ser således ud. Programmet fortsætter men det er kun begyndelsen af det, jeg har skrevet, da jeg tror, det er nok til at kunne besvare spørgsmål a og b:

#!/usr/bin/perl     
#webcollect4.pl
#
$location = $ARGV[0];
$level = $ARGV[1];
if (!$level) {exit;}
print STDERR \"*** page: $location level $leve1\\n\";

@contents = `/usr/bin/lynx -source $location`;
foreach $line (@contents) {
    $newloc = \"\";
Avatar billede well_r Nybegynder
13. december 2001 - 19:44 #1
ihhhhh hvor ligner det php :))
Avatar billede Thomas Nybegynder
13. december 2001 - 20:58 #2
Tag den nemme først....
b. Hvis $level er false (ikke har nogen værdi/lig 0(null)) så afslut! Nu hvor du lærer, så kan du jo også lige få en anden måde at skrive samme linie på, du støder jo nok på det før eller siden:
exit if (!$level); # Simple as that... (o:

a. Vil have argumenterne til linien @contents = ...;
Lynx bruges til at hente websider med, så formodentligt er det første argument du giver dit program en url. Helt præcist hvad andet argument (level) skal bruges til, kan jeg ikke umiddelbart se ud af den stump kode.

Btw; giv mig 30 point for svaret og tag selv de sidste 70 ved at lægge et svar selv.

//Thomas
Avatar billede Thomas Nybegynder
13. december 2001 - 21:00 #3
Selvfølgelig skal du kun give points hvis du mener svaret er brugbart... (o:
Avatar billede davidnielsen Nybegynder
13. december 2001 - 21:01 #4
a:
altså $location skulle så være lige med det første argument fra shellen
og $level skulle så være det andet

F.eks hvis man skriver \"webcollect4.pl pik patter\" så ville $location være \"pik\" og $level ville være \"patter\"


b:
Hvis $level ikke inden holder noget udfør exit;
Sagt på en anden måde
if ($level eq \"\"){ exit; }

Kan du bruge det ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester