Thread each %hash (8 answers)
Opened by Raubtier at 2018-08-01 15:53

rosti
 2018-08-02 14:41
#188731 #188731
User since
2011-03-19
3500 Artikel
BenutzerIn
[Homepage]
user image
Vorausgesetzt, man kennt das Verhalten, kann man dem auch anders begegnen (dynamic scope):


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use strict;
use warnings;


our @a = qw(a b c d e);

{
    local @a = @a;
    while( my( $i, $e ) = each @a){
        print "$i => $e\n";
        last if $i == 2;
    }
}

print "-----------------------\n";

while( my( $i, $e ) = each @a){
    print "$i => $e\n";
}


Die Ausgabe sieht so aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
0 => a
1 => b
2 => c
-----------------------
0 => a
1 => b
2 => c
3 => d
4 => e


D.h., das Original und damit auch der Iterator bleiben damit unangetastet.


MfG


PS: Inwieweit sich JS diesbezüglich verhält hab ich noch gar nicht untersucht. Zumindest ist der Name fast derselbe, nur darauf wollte ich hinweisen. map gibt es ja auch in JS und do{}Blöcke habe ich auch schon gesehen.


.
Last edited: 2018-08-02 17:16:46 +0200 (CEST)

View full thread each %hash