do-while.txt

#1:
    do {
        $item = readdir(D);
    } while (defined $item and (
         -d $self->{config}{dir}.'/'.$item or
        !-s $self->{config}{dir}.'/'.$item));

#2:
    my $path = $self->{config}{dir};

    while(1) {
        $item = readdir $DH;
        last if(!defined $item);
        last if(-s "$path/$item" and !-d "$path/$item");
    }