duplicitni prvky

Roztocil Bohuslav Bohuslav.Roztocil na tconsult.cz
Úterý Prosinec 21 16:38:37 MET 1999


Problem u Vas je asi v tom while() cyklu. Uvedemte si,
ze tak, jak to mate obsahuje po skonceni cyklu promenna
@data hodnoty z posledniho pruchodu cyklem.

Vy asi chcete pouzit neco takovehoto (bez zaruky):

  my @vsechno = ();

  while (my @radek = $st->fetchrow_array) {
     push @vsechno, @radek;
  }

  foreach $autor (sort keys %{{ map {$_, 1} @vsechno }}) {
     print "<tr><td align=\"left\">", "$autor", "</td></tr>\n";
  }
  $db->disconnect;


Moje puvodni odpoved funguje. Prikladam svoji debug session:

-------------------------------------------------------------- BEGIN
-----
Loading DB routines from perl5db.pl version 1.0402
Emacs support available.

Enter h or `h h' for help.

main::(-e:1):   ''
  DB<1> @vsechno = (AAA, BBB, AAA, AAA, BBB, CCC)

  DB<2> @data = sort keys %{{ map {$_, 1} @vsechno }}

  DB<3> print join ' | ', @data
AAA | BBB | CCC
  DB<4> print join ' | ', @vsechno
AAA | BBB | AAA | AAA | BBB | CCC
  DB<5>
---------------------------------------------------------------- END
-----

Bob



> -----Původní zpráva-----
> Od: Pavel Kunc [mailto:kupa na cmail.cz]
> Odesláno: 21. prosince 1999 14:34
> Odesláno do: cz.comp.lang.perl
> Konverzace: duplicitni prvky
> Předmět: Re: duplicitni prvky
> 
> 
> >>potreboval bych poradit jak dostat z pole duplicitni polozky.
> >>Mam treba pole @vsechno, ktere obsahuje {AAA, BBB, AAA, 
> AAA, BBB, CCC}.
> >>Jakkym zpusobem se dostanu k @data, ktere bude obsahovat 
> jen {AAA, BBB,
> >>CCC}?
> 
> >Treba
> >    @data = keys %{{ map {$_, 1} @vsechno }};
> >resp.
> >   @data = sort keys %{{ map {$_, 1} @vsechno }};
> >aby to bylo setridene jako v zadani.
> >Bob
> 
> 
> Nejak mi to nefunguje, vypisuje mi to jen posledni hodnotu 
> pole, tedy CCC.
> Potrebuju to pouzit v tomhle:
> 
> while (@vsechno = $st->fetchrow_array)
>   {
>    @data = keys %{{ map {$_, 1} @vsechno }};
>     print @vsechno;                  # tady je jeste kopletni.
> }
> 
>  foreach $autor (@data)
>      {
>        print "<tr><td align=\"left\">", "$autor", 
> "</td></tr>\n";  #Tady by
> se prave meli tisknout autori a tiskne se jen posledni
>       }
>  $db->disconnect;
> 
> KuPa
> 
> 



Další informace o konferenci Perl