There are a few things that may be causing problems. You have
if (@txtfile[$i] =~ /\b- skipped/) {
chomp ($errout = @txtfile[$i]);
push(@outfile,$errout);
}
- Single elements of arrays are accessed $array[0]. Using @array[0] takes an array slice, which is a list of 1 element, not a scalar value, which it doesn't look like you want. -w would have warned you about this.
- \b in a regex matches between a \w and a \W character (or the other way around). In your example you have "file/path - skipped" as a sample. Both the space and the - are \W characters, so the \b won't match there.
Other than that, the code looks good. If you are still having problems after fixing these things, perhaps you can reply and show us where
@txtfile is getting assigned values, and where
@outfile is getting used and someone can see what's wrong.