in reply to Getting rid of (.*) from a not-quite-complex regex.

What about using split?
next unless $element =~ m!^/!; my ($ptid, $total, $used, $avail, $pct, $mp) = split(' ', $element, 6);
I assumed there was a while loop, hence the next. Since we shouldn't be worried about spaces in any of the fields except for the sixth field we specify to only split six times in case you have a space in your mount point. yech.