On Mon, Aug 28, 2000 at 06:05:03PM -0400, Mark-Jason Dominus wrote:
>         # WRONG
>         while (($mo, $dy, $yr) = ($string =~ /\d\d-\d\d-\d\d/g)) {
>           ...
>         }

I assume you mean:
  while (($mo, $dy, $yr) = ($string =~ /(\d\d)-(\d\d)-(\d\d)/g)) {
    ...
  }

Drawing on some of the proposals for extended 'for' syntax:
  for my($mo, $dy, $yr) ($string =~ /(\d\d)-(\d\d)-(\d\d)/g) {
    ...
  }

This still requires that you know how many () matching groups are in
the RE, of course.  I don't think I would consider that onerous.

I agree that REs currently have a somewhat confusing mass of behaviors,
depending on context and the /g option.  I'm not certain if this can
be fixed without adding still more RE /options (and more confusion),
or more verbosity.

Do you have specific suggestions on how REs could be made "more
orthogonal"?

                       - Damien

Reply via email to