🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52542

Re: Ze sciezek do struktury html

#52542
From: Stachu 'Dozzie' K.
Date: Thu, 11 Jul 2013 20:13
67 lines
2752 bytes
On 2013-07-11, Robert Wysocki <rmwpl.spam@gmail.com> wrote:
> Bry,
>
> Cos mi dzis myslenie nie idzie, moze bedziecie miec jakies pomysly;
> mam wiele scalarow postaci:
> 'grupa/podgrupa/host/wykres.png'
> z tym, ze podgrup moze byc [0,inf)
>
> Chce na podstawie tych sciezek wygenerowac zagniezdzona strukture (html) 
> taka, ze grupa zawiera wszystkie swoje hosty i podgrupy, podgrupa zawiera 
> wszystkie swoje hosty i podgrupy itd a kazdy host zawiera swoje wykresy.
>
> Jakies pomysly na algorytm?

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
Technical Details
Message-ID: <slrnktu4f4.d47.dozzie@jarowit.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!eu.feeder.erje.net!weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!not-for-mail
References: <krn11u$bnv$1@news.dialog.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!eu.feeder.erje.net!weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid>
Newsgroups: pl.comp.lang.perl
Subject: Re: Ze sciezek do struktury html
Date: Thu, 11 Jul 2013 20:13:24 +0000 (UTC)
Organization: solani.org
Lines: 67
Message-ID: <slrnktu4f4.d47.dozzie@jarowit.net>
References: <krn11u$bnv$1@news.dialog.net.pl>
Mime-Version: 1.0
X-Trace: solani.org 1373573604 20387 eJwNy0kBgAAIBMBKnAvEEYT+EXT+4wrGhMFhfn7Ge0SVXBSNJcz0prp4FGaJ347LByrD8q8PDg0Qcw== (11 Jul 2013 20:13:24 GMT)
X-Complaints-To: abuse@news.solani.org
NNTP-Posting-Date: Thu, 11 Jul 2013 20:13:24 +0000 (UTC)
User-Agent: slrn/pre1.0.0-18 (Linux)
X-User-ID: eJwNycEBwEAEBMCWcCwpJ1b0X8JlvhMHCqYj4LGxumMyKTCk1+lE4y3+QRHrUfrzGYKYZIldDfUQmQ==
Cancel-Lock: sha1:x4BV2sIV14zEcXDCxkRf2HdcyRE=
X-NNTP-Posting-Host: eJwNycERwDAIA7CVCsQujBN8sP8Irb5C0Kj3EDxY7HS231ZlmP5wdiwxcnXUs1m4YTsGN63sAy3EEYs=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit