[Rio-pm] Percorrendo array

Daniel de Oliveira Mantovani daniel.oliveira.mantovani em gmail.com
Terça Janeiro 29 05:43:03 PST 2013


2013/1/12 Thiago Glauco <thiagoglauco em ticursos.net>:
> 1-> de onde sua função tirou o @data?
>
> mas faça isso:
>
> my $i = 0;
> while($i <= $#data) {
>     $i = 1 if $data[$i] eq $gi;
>     ...
>

Thiago, seu código é incompatível com o do autor acima.


> Evite usar labels.
Porque labels é uma má prática em Software Engineer  ? Label é uma
feature poderosa que a linguagem oferece.

sub array_find_position{$g=shift;return$_ if $f[$_]==$g for 0..$# }

Se a lista for muito grande,

sub array_find_position{$g=shift;$i=0;return$i if $f[$i]==$g while $i<=$# }

[]'s

>
> regards.
>
>
> Em Sáb, 2013-01-12 às 20:37 +0000, Aureliano Guedes escreveu:
>> Era sim, mas resolvi tomar outro metodo.
>>
>> sub array_find_position{
>>     my $gi = shift;
>>     my $position = 0;
>>     LINE: foreach (@data){
>>         if ($_ eq $gi){
>>             last LINE;
>>       }
>>         else{
>>             $position++;
>>         }
>>     }
>>     return $position;
>> }
>>
>>
>> > From: blabos em gmail.com
>> > Date: Sat, 12 Jan 2013 18:20:16 -0200
>> > To: rio-pm em pm.org
>> > Subject: Re: [Rio-pm] Percorrendo array
>> >
>> > perl -E '@array=(1..10); for(my $i = 0; $i < 10; $i
>> ++){ if($array[$i]
>> > == 2){ $i = 5} if($array[$i] == 7) {$i = 10} say $array[$i]}'
>> >
>> > Tipo isso?
>> >
>> > 2013/1/12 Tiago Peczenyj <tiago.peczenyj em gmail.com>:
>> > > nao use foreach. use for ou while p indice e altere-o qdo quiser p
>> avancar
>> > > ou voltar
>> > >
>> > > Em 12/01/2013 15:53, "Aureliano Guedes" <guedes_1000 em hotmail.com>
>> escreveu:
>> > >>
>> > >> Ola Monges,
>> > >>
>> > >> Me surgiu uma duvida nesse momento.
>> > >>
>> > >> Imagine que temos um array de 10 posições:
>> > >> my @a = qw(0 1 2 3 4 5 6 7 8 9);
>> > >>
>> > >> Então este array esta em um loop, no caso um foreach:
>> > >>
>> > >> foreach my $i (@a){
>> > >> ...
>> > >> }
>> > >>
>> > >> Mas eu quero que se o valor dessa posição seja 6, por exemplo, o
>> array
>> > >> volte para segunda posição.
>> > >>
>> > >> Não sei se minha pergunta ficou estranha ou difícil de entender,
>> mas como
>> > >> eu faria isso??
>> > >>
>> > >> _______________________________________________
>> > >> Rio-pm mailing list
>> > >> Rio-pm em pm.org
>> > >> http://mail.pm.org/mailman/listinfo/rio-pm
>> > >
>> > >
>> > > _______________________________________________
>> > > Rio-pm mailing list
>> > > Rio-pm em pm.org
>> > > http://mail.pm.org/mailman/listinfo/rio-pm
>> > _______________________________________________
>> > Rio-pm mailing list
>> > Rio-pm em pm.org
>> > http://mail.pm.org/mailman/listinfo/rio-pm
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm


-dom

--

IBM - Business Analytics Optimization Consultant
Daniel Mantovani +5511 8538-9897
XOXO


Mais detalhes sobre a lista de discussão Rio-pm