Link to home
Start Free TrialLog in
Avatar of perlwhite
perlwhiteFlag for United States of America

asked on

Break out of the loop

Hello,

I have following code. Goal is to check files in a folder for their completion.  There can be n number of files.  The problem here is that if I do not use 'break logic', status will be complete even if the loop finds one of the files to be complete.  So I am looking for a break logic.  The documentation says we cannot put it with do{}.  So, Can I use LAST with the inner for loop? so the For loop starts all over again?

my @files = <C:\\root;
my $status='incomplete';
do 
{
CHECK:  for my $file ( @files ) 
{
my $size= -s $file;
sleep 5;
my $size_later= -s $file

if ($size==$size_later)
 {
       $status= 'complete';
  }
else  LAST CHECK;# I need break here to start looking for files again
}
} while ( $status=='incomplete') #end do - while for status

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of ozo
ozo
Flag of United States of America image

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
Do you want to set $status='incomplete' in the else?
Avatar of perlwhite

ASKER

Yes, I want $status= 'incomplete'.  I believe, I am setting that on very top.  Do I have to again set up?

else  {LAST CHECK  $status='incomplete'};
If the first file sets $status= 'complete', it will still be 'complete' even if $size!=$size_later on the second file.  Is that what you want?