Thread $#array aber wie bei hash? (11 answers)
Opened by mhybner at 2005-07-30 15:16

Ishka
 2005-07-30 16:52
#56842 #56842
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=esskar,30.07.2005, 14:24]
Code: (dl )
(scalar %$hashref) / 2
[/quote]
nein, das klappt nicht. Im scalaren Kontext steht in Hashes nämlich drin, wie viele Buckets belegt sind und wieviele es gibt, also ,,zahl/zahl''. Damit gibt (scalar %$hashref) / 2 die Hälfte der Zahl der belegten Buckets zurück.

meintest du
Code: (dl )
($#{[%$i]}+1) / 2

? Das geht zwar, ist aber langsam, glaube ich.\n\n

<!--EDIT|Ishka|1122728076-->
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}

View full thread $#array aber wie bei hash?