perlwhite
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?
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
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Do you want to set $status='incomplete' in the else?
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'};
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?