Odebrani opakujicich se prvku z pole
Ondrej Koala Vacha
koala na fi.muni.cz
Pondělí Duben 12 23:08:41 MEST 1999
On Mon, 12 Apr 1999, Ludek Finstrle wrote:
> > Ahoj lidi,
> >
> > potreboval bych nejakej (jednduchej) zpusob jak odebrat z pole prvky, ktere
> > se tam uz vyskytuji.
> > Patrne nejlepsi zpusob je priradit je jako klice do hashe a pak ty stejny
> > vypadnou, jenomze jak to udelat, kdyz potrebuju zachovat jejich poradi?
>
> Coz takhle:
>
> my %hash;
> my $pom;
> for (@pole) {
> $hash{sprintf('%10d',$pom)."$pole[$pom]"} = 1;
> }
>
> @pole = map { /^.{10}(.*)$/; $1 } sort keys %hash;
>
> Melo by to fungovat.
>
> Neni zac
>
Priklad by nepracoval dobre, ani kdyby si nastavoval $pom pres prvky pole,
nebot by nevyloucil duplicity. Nabizim reseni:
my %hash;
my $pom;
for ($pom=@pole-1; $pom>=0; $pom--) {
$hash{$pole[$pom]} = $pom;
}
@pole = map {$pole[$_]} sort values %hash;
---
Ondrej Koala Vacha
Další informace o konferenci Perl