Thread Variablen in Sub's - strict meckert rum. (20 answers)
Opened by popcorn5 at 2007-04-26 20:29

Ronnie
 2007-04-27 09:20
#76291 #76291
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=Sucher,26.04.2007, 23:41]nur aus Interesse: Warum möchte man denn eine sub in einer sub definieren?[/quote]
Closures! Ein beliebtes Beispiel sind Iteratoren:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

sub create_iter {
my $start = shift || 1;
my $func = shift || sub { $_[0] += 1 };

return sub { my $t = $start; $func->($start); return $t }
}

my $iter = create_iter(17, sub { $_[0] += 2 });

while (my $i = $iter->()) {
last if $i > 25;
print $i . "\n";
}

my $iter2 = create_iter(1, sub { $_[0] *= 2 });

while (my $i = $iter2->()) {
last if $i > 256;
print $i . "\n";
}

View full thread Variablen in Sub's - strict meckert rum.