Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/perl
- use strict;
- use warnings;
- my @sites = ('a', 'b', 'c');
- my @servers = ('A', 'B');
- my @data_type = ("X", "Y", "Z");
- foreach my $site (@sites) {
- foreach my $server_type (@servers) {
- foreach my $data (@data_type) {
- #statements
- }
- }
- }
- sub cartesian {
- my @C = map { [ $_ ] } @{ shift @_ };
- foreach (@_) {
- my @A = @$_;
- @C = map { my $n = $_; map { [ $n, @$_ ] } @C } @A;
- }
- return @C;
- }
- my @sites = ('a', 'b', 'c');
- my @servers = ('A', 'B');
- my @data_type = ("X", "Y", "Z");
- foreach (cartesian(@sites, @servers, @data_type)) {
- ($data, $server_type, $site) = @$_;
- print "$site $server_type $datan";
- }
- use Set::CrossProduct;
- my @sites = ('a', 'b', 'c');
- my @servers = ('A', 'B');
- my @data_type = ("X", "Y", "Z");
- my $cross = Set::CrossProduct->new(
- [ @sites, @servers, @data_type ]
- );
- while( my $tuple = $cross->get ) {
- print "@$tuplen";
- }
- use strict;
- use warnings;
- my %sites = (
- a => {
- A => {
- data_type => [ 'X', 'Y' ],
- }
- },
- b => {
- B => {
- data_type => [ 'Y', 'Z' ],
- }
- },
- c => {
- },
- );
- for my $site ( keys %sites ) {
- for my $server ( keys %{ $sites{ $site } } ) {
- for my $data ( keys %{ $sites{ $site }{ $server } } ) {
- my @data_types = @{ $sites{ $site }{ $server }{ data_type } };
- say "On site $site is server $server with $data @data_types";
- }
- }
- }
- while ( my ( $site, $site_info ) = each %sites ) {
- while ( my ( $server, $server_info ) = each %{ $site_info } ) {
- my @data_types = @{ $server_info->{data_type} };
- say "On site $site we have server $server with data types @data_types"
- if @data_types;
- }
- }
- for(my $i = 0; $i <= $#sites; $i++){
- for(my $j = 0; $j <= $#servers; $j++){
- for(my $k = 0; $k <= $#data_type; $k++){
- do_functions ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement