Toon posts:

[perl] array probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben bezig met een perl script die een database uitleest om bepaalde waardes in een config file te zetten

zo selecteer ik bijvoorbeeld alles waar id 1 is uit m'n database en daar komen dan bijvoorbeeld 3 IPs uit.

nu wil ik dus in een while loop hebben dat hij die query uitvoerd en dan de config schrijft op deze manier:

blah blah blah {
ipjes 1.2.3.4,1.2.3.5,1.2.3.6
}

de IPs komen uit de database en verschilen steeds per query hoeveel er uitkomen.

nu heb ik dat op deze manier in elkaar geknutseld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
    while ($this_netsaint = $netsaint->fetchrow_hashref()) {

       if($this_netsaint->{'ping'} eq "1") {
         @ips = $this_netsaint->{'host'};

      print "define service {\n";
      print "  host_name         ";
         foreach $ipje (@ips) {
           print "$ipje,";
         }

  }

maar nu maakt ie voor alles wat ie terugkrijgt een nieuwe while zeg maar, dus ipv ip,ip,ip te doen doet ie voor elk IP een nieuwe define etc.

iemand een idee ?

en nee, ik ben geen ster in perl :)

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Wat denk je van die define boven de while zetten?

Verwijderd

Topicstarter
had ik aan zitten denken maar hij moet voor elke group van IPs weer een nieuwe define doen

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op donderdag 21 maart 2002 13:04 schreef milanese het volgende:
had ik aan zitten denken maar hij moet voor elke group van IPs weer een nieuwe define doen
oja :)

Verwijderd

Topicstarter
oh perl god, waar bent uuuuuuuu ? :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Dan hoef je het niet na 10 minuten te schoppen...

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 09-09 23:24

BierPul

2 koffie graag

I agree :)

Like you give a damn :P

Ja man


  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

code:
1
2
3
4
5
6
7
8
9
10
11
while ($this_netsaint = $netsaint->fetchrow_hashref()) {
    $list{$this_netsaint->{'id'}}{$this_netsaint->{'host'}} = 1;
}

foreach $id ( keys %list ) {
    print "define service {\n";
    print "  host_name       ";
    foreach $ip ( keys %{$list{$id}}) {
        print "$ip,";
    }
}

iets in deze richting zou werken?

Skill is when luck becomes a habit.

Pagina: 1