mas vc vai retornar o ultimo elemento se não encontrar o valor desejado?
Eu vejo 2 problemas na sua abordagem:
1 - vc não precisa do last LINE, de fato apenas last seria suficiente
mas vc poderia colocar um return $position no lugar e retornar undef
ou -1 (ou die "nao encontrei") como caso default.
2- vc pode usar a subrotina first do pacote List::Util (built in)
use List::Util qw(first);
my @a = (1,2,9,3,4);
print first { $a[$_] == 9 } 0.. scalar @a;
para ser mais sucinto vc poderia usar
first_index do List::MoreUtils (cpan)
2013/1/12 Aureliano Guedes <[email protected]>:
> 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: [email protected]
>> Date: Sat, 12 Jan 2013 18:20:16 -0200
>> To: [email protected]
>> 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 <[email protected]>:
>> > 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" <[email protected]>
>> > 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
>> >> [email protected]
>> >> http://mail.pm.org/mailman/listinfo/rio-pm
>> >
>> >
>> > _______________________________________________
>> > Rio-pm mailing list
>> > [email protected]
>> > http://mail.pm.org/mailman/listinfo/rio-pm
>> _______________________________________________
>> Rio-pm mailing list
>> [email protected]
>> http://mail.pm.org/mailman/listinfo/rio-pm
>
> _______________________________________________
> Rio-pm mailing list
> [email protected]
> http://mail.pm.org/mailman/listinfo/rio-pm
--
Tiago B. Peczenyj
Linux User #405772
http://about.me/peczenyj
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm