LX-PERL-INFO-for-foreach
Updated aug/03/2010 19:54

for en foreach

  1. syntax

    for ($x=$begin_getal;
         $x<=$eind_getal; #voorwaarde
         $x+=$increment)

    {
    <perl code>
    }
    foreach $x (@lijst)
    {
    <perl code>
    }

  2. for

    De gewone for is een standaard speelgoed voor all-round programmeurs. for telt van een begingetal tot een eindgetal, met een vermeerdering of vermindering (step of increment) bij elke doorloop. Zodra de voorwaarde vervult is stopt de lus.

    Het gebruik is makkelijker dan de uitleg, en ligt ook nogal voor de hand. Bekijk eerst het voorbeeld faculteit en maak daarna zelf een oefening die alle kwadraten afdrukt van de getallen 1 t.e.m. 10.

    Pas op voor oneindige lussen: als de voorwaarde nooit wordt vervult, stopt het script nooit vanzelf.

    Wij gaan nu faculteiten berekenen (tevens een voorbeeld op do while):

    #!/usr/bin/perl
    #
    # faculteit: om faculteiten te berekenen
    #
    do
    {
            print "Geef een natuurlijk getal in kleiner dan 170: ";
            $getal = <STDIN>;
            chomp($getal);
            $faculteit=1;
            for ($x=1; $x<=$getal; $x++)
            {
                    $faculteit = $faculteit * $x ;
            }
            if ($getal <=0) { $faculteit = 0 }
            print "$getal ! = $faculteit \n";
    } while ($getal >= 1)

  3. foreach

    foreach haalt één voor één elementen uit een array of lijst.

    Systeembeheerders vinden een foreach nuttiger dan een for. Een ls van $HOME geeft immers een lijst filenamen, vaak het begin van een backupscript. Hoe we die lijst opvragen en in een array stoppen, zonder bash commando's te gebruiken, zien we in een volgend hoofdstuk. De foreach methode lijkt bijzonder veel op de for uit bash.

    We geven nu een voorbeeld met een zelfingevulde array:

    #!/usr/bin/perl
    #
    # eachfor: voorbeeld op foreach
    #
    @matrix = ( aap , noot , mies , maan , roos , vis );
    print "De originele lijst: @matrix\n";
    foreach $x (@matrix)
    {
    print "$x zit in de matrix \n";
    }

  4. default variable

    We mogen de $x in het vorige eenvoudige foreach voorbeeld gewoon vergeten in de aanroep. In de foreach lus zelf wordt dan de default variable $_ gebruikt.

    #!/usr/bin/perl
    #
    # eachfor2: voorbeeld op foreach en default variable
    #
    @matrix = ( aap , noot , mies , maan , roos , vis );
    print "De originele lijst: @matrix\n";
    foreach (@matrix)
    {
    print "$_ zit in de matrix \n";
    }

  5. foreach van hashes

    syntax:

    #!/usr/bin/perl
    #
    # fqdn: voorbeeld op foreach en hash
    #
    %fqdn_klant = ( 'Vanilla inc' ,           "brussels.com" ,
                    'World Media Group llc' , "paris.com" ,
                    'Internet Holdings inc' , "newyork.com" ,
                    'Michael Castello' ,      "paramaribo.com" );
    foreach $key (keys %fqdn_klant)
    {
    print "Domain Name: $fqdn_klant{$key} is eigendom van $key\n";
    }

  6. Meer over loops

    http://www.tutorialspoint.com/perl/perl_loops.htm