What you have is the same as a comma delimited file but with spaces instead of commas. So we can use the code from the Perl Cookbook, parsing comma-seperated data, and substitute a space where the commas would be. (Not well tested):
- my @data;
-
while (<DATA>) {
-
push @data,parse_data($_);
-
}
-
print "$_\n" for @data;
-
-
sub parse_data {
-
my $text = shift;
-
my @new = ();
-
push(@new, $+) while $text =~ m{
-
"([^\"\\]*(?:\\.[^\"\\]*)*)"\s?
-
| ([^ ]+)\s?
-
| \s
-
}gx;
-
push(@new, undef) if substr($text, -1,1) eq ' ';
-
return @new;
-
}
-
__DATA__
-
bl-render -render /renders/HOE/HD_RAW/REEL_5/reel_5.%.6F.dpx -profile HD_bake -format "Super 16mm" -mask "Full" -range 0-30408 max:hoe:reel_5
-
bl-render -render /renders/HOE/HD_RAW/REEL_6/reel_6.%.6F.dpx -profile HD_bake -format "Super 16mm" -mask "Full" -range 0-13472 max:hoe:reel_6
It does assume there is a single space delimiting the data fields, if there can be more than one space the code would need to be changed a little bit. I have no idea how it will work if a field is blank.
Apply the parse_data() subroutine however is appropriate for your purposes.