2015-02-06 9 views

Odpowiedz

8

keys(%S)[email protected]_fields; jest identyczna keys(%S) = scalar @C_fields;

iz perldoc -f keys

stosowany jako lwartości, klucze pozwala do zwiększyć liczbę mieszających łyżek przydzielonych dla danego skrótu. Dzięki temu możesz uzyskać pewną efektywność, jeśli wiesz, że hash się zwiększy. (Jest to podobne do pre-rozszerzenie tablicę poprzez przypisanie większej liczby do tablicy $ #). Jeśli powiesz

keys %hash = 200;

następnie% hash będzie miała co najmniej 200 wiadra przeznaczone na nią - 256 z nich w rzeczywistości, ponieważ zaokrągla się do następnej potęgi dwóch.

Więc hash %S dostanie ilość segmentów, które są co najmniej wielkość @C_fields tablicy.

+0

Więcej na temat kluczy/tematu wiadra http://stackoverflow.com/questions/6723172/what-is-4-16-in-hashes –

+0

[Ten artykuł] (http://blog.codinghorror.com/code-tells- you-how-comments-tell-you-why /) przychodzi do głowy, szczególnie w punkcie końcowym. – RobEarl

+0

@RobEarl masz na myśli, aby wyjaśnić powyżej, dlaczego chciałbyś ręcznie przypisać liczbę wiaderek w pierwszej kolejności? –