Link to home
Start Free TrialLog in
Avatar of Cosine_Consultants
Cosine_Consultants

asked on

Syntax Question

What does the FOR "my $i=$l[$#l]+1;" means  ?

     my $t     =shift @_ ;
     my $n     =shift @_ ;
     my $level =shift @_ ;
     my @l     =@_ ;

    #global @f,@h,@d,$collsize

     return       if ($f[$t] ne '') ;
     $collsize=0  if ($level=0) ;

     $level++ ;

     CANDIDATE :
     for (my $i=$l[$#l]+1;$i<=$n;$i++) {
ASKER CERTIFIED SOLUTION
Avatar of roee_f
roee_f

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of kandura
kandura

Hi Cosine_Consultants,
>     my $t     =shift @_ ;
>      my $n     =shift @_ ;
>      my $level =shift @_ ;
>      my @l     =@_ ;

this is better written as

    my($t, $n, $level, @l) = @_;

>     #global @f,@h,@d,$collsize

>      return       if ($f[$t] ne '') ;
>      $collsize=0  if ($level=0) ;

You probably mean

    $collsize = 0 if $level == 0;

>      $level++ ;

>      CANDIDATE :
>      for (my $i=$l[$#l]+1;$i<=$n;$i++) {

More perlish would be

    for my $i ( $l[-1]+1 .. $n ) {

Cheers!