2008-10-21 13 views

Odpowiedz

70
perldoc -f length 

    length EXPR 
    length Returns the length in characters of the value of EXPR. If EXPR is 
      omitted, returns length of $_. Note that this cannot be used on an 
      entire array or hash to find out how many elements these have. For 
      that, use "scalar @array" and "scalar keys %hash" respectively. 

      Note the characters: if the EXPR is in Unicode, you will get the num- 
      ber of characters, not the number of bytes. To get the length in 
      bytes, use "do { use bytes; length(EXPR) }", see bytes. 
+0

Dzięki! Łatwy dla ciebie rep! :) – Kip

+0

Zadzwoń do mnie "Szybkie losowanie". –

+17

Twoja odpowiedź byłaby lepsza, gdyby miała przykład. –

41

Chociaż „length()” jest poprawna odpowiedź, która powinna być stosowana w każdym kodzie sane, Abigail's length horror należy wspomnieć, choćby przez wzgląd na Perl tradycji.

Zasadniczo sztuczka polega na wykorzystaniu wartości zwracanej catch-all operatora transliteracji:

print "foo" =~ y===c; # prints 3 

y /// c zastępuje wszystkie znaki ze sobą (dzięki opcji dopełniacza 'c'), i zwraca liczbę zastąpionych znaków (czyli, odpowiednio, długość ciągu znaków).

+5

Och, to jest piękne. Okropne, ale cudowne. –

+1

Tryby zliczania y nie modyfikują łańcucha znaków, więc będą działały poprawnie nawet w przypadku wartości tylko do odczytu. – ysth

+4

To jest niesamowite w straszny sposób. –

-2

length() funkcja:

$string ='String Name'; 
$size=length($string); 
Powiązane problemy