[perl] Contando cuantos....
Salvador Ortiz Garcia
sog@msg.com.mx
Wed, 24 Mar 1999 21:27:24 -0600 (EST)
On Wed, 24 Mar 1999, Adrian Galindo wrote:
>
> Hay una forma menos cochina para contar cuantas veces esta determinado
> caracter en una cadena que esto ...
>
> $cadena="uno|dos|tres|||";
> $final=$cadena;
> $final =~ s/[^\|]//g;
> $cuantos = length($final);
> print "$cuantos\n";
Prueba usando:
$cuantos = $cadena =~ tr/|/|/;
No se si la consideres más limpia, pero es _mucho_ más rapida, ademas de
que ese uso de 'tr' está documentado.
> Esto me regresa un 5 y es mas o menos lo que quiero. En realidad lo que
> quiero saber es cuantos campos hay en esa linea, por lo tanto, en este
> caso, tengo $cuantos + 1 campos, ya que con esto:
>
> @valores = split (/\|/,$cadena);
> $numcampos = scalar(@valores);
> print "$numcampos campos en '$cadena'\n";
>
> me regresa un 3 ya que no se meten los seis elementos al arreglo, cosa
> que si hace cuando no hay campos vacios...
Entonces lo que necesitas es:
@valores = split(/\|/, $cadena, -1);
Sucede que por default split no trabaja más de lo necesario.
Saludos
Salvador Ortiz
--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text : cancelacion perl