2008-10-21 18 views

Respuesta

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

Gracias! Representante fácil para ti! :) – Kip

+0

Solo llámame "Quick Draw". –

+17

Su respuesta sería mejor si tuviera un ejemplo. –

41

Aunque 'length()' es la respuesta correcta que se debe utilizar en cualquier código de cuerdo, Abigail's length horror deben mencionarse, aunque sólo sea por el bien de Perl tradición.

Básicamente, el truco consiste en utilizar el valor de retorno del cajón de sastre operador de transliteración:

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

y /// C reemplaza todos los caracteres con ellos mismos (gracias a la opción de complemento 'c'), y devuelve el número de caracteres reemplazados (por lo tanto, efectivamente, la longitud de la cadena).

+5

Oh, eso es encantador. Horrible, pero encantador. –

+1

y los modos de conteo no modifican realmente la cadena, por lo que funcionarán bien incluso en valores de solo lectura. – ysth

+4

Esto es impresionante de una manera terrible. –

-2

La función length():

$string ='String Name'; 
$size=length($string); 
Cuestiones relacionadas