|
|
![]() |
||
|
|
|||
|
JavaScript.nu
/
Perl-kurs
/
Bearbeta variabler
Exempel:
#!/usr/bin/perl
@aaa=sort("1000","!Viktigt","A","a","Brevpapper","2000");
@bbb=("1000","!Viktigt","A","a","Brevpapper","2000");
print "Content-type:text/html\n\n";
print "@aaa\n";
print sort(@bbb);
print "\n";
print "$aaa[1]\n";
print "$bbb[1]";
Utmatning:
!Viktigt 1000 2000 A Brevpapper a
!Viktigt10002000ABrevpappera
1000
!Viktigt
Observera att när @aaa skapas så är alla värdena sorterade i @aaa.
@bbb däremot är inte sorterad. Förutom att utskriften för @aaa
sker med mellanrum mellan värdena så ligger alla värdena i en annan ordning gentemot
@bbb, vilket visas då vi skriver ut det andra värdet (index 1) i @aaa
och @bbb i slutet av scriptet.
Lägg också märke till ordningen av A, Brevpapper och a. A kommer först, Brevpapper sedan och sist kommer a.
Exempel:
#!/usr/bin/perl
@aaa=reverse("1000","!Viktigt","A","a","Brevpapper","2000");
@bbb=("1000","!Viktigt","A","a","Brevpapper","2000");
print "Content-type:text/html\n\n";
print "@aaa\n";
print reverse(@bbb);
Utmatning:
2000 Brevpapper a A !Viktigt 1000
2000BrevpapperaA!Viktigt1000
Observera att utskriften blir med mellanrum då jag skriver ut @aaa
eftersom jag angav reverse då jag deklarerade variabeln, medan
@bbb skrivs ut utan mellanrum, eftersom jag "vänder" på värdena
då jag skriver ut @bbb.
Exempel:
#!/usr/bin/perl
@medlemmar=("Sven","Erik","Gustav","Henrik");
print "Content-type:text/html\n\n";
print "Våra medlemmar:\n";
foreach $medlem (@medlemmar)
{
print "$medlem\n";
}
Utmatning:
Våra medlemmar:
Sven
Erik
Gustav
Henrik
Detta är mycket användbart i många sammanhang då man vill gå igenom alla värden i en array.
foreach kan också skrivas som bara for
(trots att detta är helt skilda saker), men för läsvänlighetens skull
skrivs ofta just foreach.
Delar $scalar på alla ställen där x finns och skapar en array av delarna i den ordning som delarna kommer i strängen. Exempel 1: #!/usr/bin/perl $hemligt="123456:Administrator:Yt6Jgjkg7R6"; @delar=split(/:/, $hemligt); print "Content-type:text/html\n\n"; print "Välkommen $delar[1]!\nDin kod är $delar[0].\n"; print "Ditt hemliga ID är: $delar[2]"; Utmatning: Välkommen Administrator! Din kod är 123456. Ditt hemliga ID är: Yt6Jgjkg7R6 Exempel 2: #!/usr/bin/perl $hemligt="123456=Administrator=Yt6Jgjkg7R6"; ($kod, $login, $id)=split(/=/, $hemligt); print "Content-type:text/html\n\n"; print "Välkommen $login!\nDin kod är $kod.\n"; print "Ditt hemliga ID är: $id"; Utmatning: Välkommen Administrator! Din kod är 123456. Ditt hemliga ID är: Yt6Jgjkg7R6
foreach $temp (@array2) { # Loopar lika många gånger som @array2 har värden
@array1[++$#array1] = $temp; # För varje loop ökar @array1 med ett värde (ett värde från @array2)
}
Som du förstår är det lättare och behändigare att skriva
push(@array1, @array2) istället för scriptet ovan.
Exempel:
#!/usr/bin/perl
@vardag=("Mån","Tis","Ons","Tors","Fre");
@helgdag=("Lör","Sön"); # @helgdag kommer aldrig att ändras
push(@vardag, @helgdag); # @vardag ändras nu och innehåller 7 dagar
print "Content-type:text/html\n\n";
foreach $dag (@vardag)
{
print "$dag";
print "dag\n";
}
Utmatning:
Måndag
Tiddag
Onsdag
Torsdag
Fredag
Lördag
Söndag
Copyright © Omid Rouhani 1997-2022; Alla rättigheter reserverade. Guider: [ HTML guide ] - [ JavaScript guide ] - [ DHTML guide ] - [ Perl guide ] - [ Sitemap ] |