1. Rozbić skalar.
2. Rozbity skalar umieścić w drzewiastej strukturze danych.
* węzeł odpowiadający wykresowi to liść
* węzeł odpowiadający podgrupie ma dwa pola: listę hostów i hasz grup
3. Powtarzać.
Coś w tym stylu:
#v+
#!/usr/bin/perl
use warnings;
use strict;
my @data = <DATA>;
chomp @data;
my $root_struct = {
hosts => [],
groups => {},
};
for my $d (@data) {
my @parts = split m[/], $d;
my $host = pop @parts;
my $where = $root_struct;
for my $p (@parts) {
$where->{groups}{$p} ||= { hosts => [], groups => {} };
$where = $where->{groups}{$p}
}
push @{ $where->{hosts} }, $host;
}
__DATA__
server/mysql/wrmysql01
server/mysql/wrmysql02
server/mysql/krmysql01
server/pgsql/krpgsql01
server/pgsql/krpgsql02
server/www/apache/wawww01
server/www/apache/wawww02
server/www/nginx/wawww03
server/www/gdproxy01
server/www/gdproxy02
server/www/gdproxy03
server/wrgeneric01
server/wrgeneric02
server/wrgeneric03
#v-
--
Secunia non olet.
Stanislaw Klekot