|
|||
Cgi4free |
Egen söktjänst |
Erbjudanden |
Funktioner |
Gratis bilder |
Hemsidekryptering |
Posten |
Söktjänstregistrering |
JavaScript.nu
/
Perl-kurs
/
Olika variabler
Den första sorten, scalar, är den vanligaste och simplaste variabeln då den endast kan innehålla en sträng. Här deklareras variabeln favfarg och initieras med värdet röd: $favfarg="röd"; Vill vi senare skriva ut variabeln så skriver man helt enkelt ut den bland texten man vill skriva ut: #!/usr/bin/perl $favfarg="röd"; print "Content-type:text/html\n\n"; print "Min favoritfärg är: $favfarg";En annan sorts variabel är Array, som kan lagra en massa olika variabler. Denna använder inte ett dollartecken, $, som scalar gör. Denna använder istället ett @: @vinnare=("Sven Svensson","Niklas Joelsson","Kristoffer Henriksson","Bert Bergkvist");Vill du använda värdena måste du bekräfta vilket värde du vill använda med ett index, varför man även kallar arrayen dimensionerad array: #!/usr/bin/perl @vinnare=("Sven Svensson","Niklas Joelsson","Kristoffer Henriksson","Bert Bergkvist"); print "Content-type:text/html\n\n"; print "$vinnare[0] vann tävlingen. Sist kom dock $vinnare[3].";Utmatningen blir då: Sven Svensson vann tävlingen. Sist kom dock Bert Bergkvist.
Kom ihåg att indexnumrena börjar från noll och går uppåt. I detta fall där det finns fyra namn
blir det sista indexet (Bert Bergkvist) 3.
#!/usr/bin/perl @vinnare=("Sven Svensson","Niklas Joelsson","Kristoffer Henriksson","Bert Bergkvist"); print "Content-type:text/html\n\n"; $antal=$#vinnare + 1; # 3+1=4 print "I år ställde $antal deltagare upp.";Utmatningen blir då: I år ställde 4 deltagare upp. Ytterligare en variabeltyp är hashes, som symboliseras av ett procenttecken, %. Denna är inte dimensionerad med indexnummer som arrayen är, utan denna associerar ord som du själv angivit med de olika värdena. #!/usr/bin/perl %pris=("Guld","Sven Svensson","Silver","Niklas Joelsson","Brons","Kristoffer Henriksson","Tröstpris","Bert Bergkvist"); print "Content-type:text/html\n\n"; print "$pris{'Guld'} fick guld. Tröstpriset vanns av $pris{'Tröstpris'}.";Utmatningen blir då: Sven Svensson fick guld. Tröstpriset vanns av Bert Bergkvist.
$antal="Tre"; #En sträng $antal=3; #Ett tal $antal="$antal björnar såg $antal hästar."; #En strängDu kan liksom många andra programmeringsspråk ändra numeriska variabler så här: $nr=3; # 3 (3) $nr=$nr * $nr; # 9 (3*3) $nr+=5 + $nr; # 23 (9+(5+9)) $nr--; # 22 (23-1) --$nr; # 21 (22-1) $nr++; # 22 (21+1) ++$nr; # 23 (22+1) $nr/=2; # 11.5 (23/2)För att förså skillnaden mellan ++$nr; och $nr++; visas detta script: #!/usr/bin/perl $a=5; $b=0; $x=5; $y=0; $b=$a++; #först blir b=a (=5), sedan blir a ett större (=6) $y=++$x; #först blir x ett större (=6), sedan blir y=x (=6) print "Content-type:text/html\n\n"; print "a=$a\n"; print "b=$b\n"; print "x=$x\n"; print "y=$y";Eftersom värdet ändras innan det returneras om ++ är före en variabel och det ändras efter det returneras om ++ är efter variabeln så blir utmaningen (detta är till viss del överkurs och kan ignoreras om du inte fullt förstår vad som menas): a=6 b=5 x=6 y=6Problem kan dock uppstå i sådana här script: #!/usr/bin/perl $aaa="111"; $aaa2="222"; print "Content-type:text/html\n\n"; print "-$aaa-$aaa2-$aaaa";Utskriften blir då: -111-222-
Variabeln $aaaa finns ju inte, och därför skrivs den inte ut.
Scriptet fungerar dock utan problem. Fast detta var kanske inte vad vi ville
ha, vi kanske ville ha denna utskrift:
Då skulle man istället ha haft detta script: #!/usr/bin/perl $aaa="111"; $aaa2="222"; print "Content-type:text/html\n\n"; print "-$aaa-$aaa2-$aaa"; print "a";Detta ger den tänkta utskriften. Copyright © Omid Rouhani 1997-2022; Alla rättigheter reserverade. Guider: [ HTML guide ] - [ JavaScript guide ] - [ DHTML guide ] - [ Perl guide ] - [ Sitemap ] |