- 论坛徽章:
- 0
|
用闭包做了个。不知道大家觉得如何。- use warnings;
- use strict;
- sub Genterator
- {
- my ( $raList ) = shift;
- return 0 if not $raList or
- not @{ $raList };
-
- my ( $sStartIndex ) = 0;
-
- return sub {
- return 0 if $sStartIndex > $#{ $raList->[0] };
- my $sValue = join(" ", map { $_->[ $sStartIndex ] } @{ $raList });
- $sStartIndex++;
- return $sValue;
- }
- }
- sub Test
- {
- my @A = ( [ 'A' ,"B", 'C',"D" ],
- [ 1,2,3,4 ],
- [ 'a', 'b', "c", "d" ] );
- my $crGenterator = Genterator( \@A );
- while( my $sValue = $crGenterator->() ){
- print "$sValue\n";
- }
- }
- Test();
复制代码 |
|