in reply to Re: (Golf) Rangify Array
in thread (Golf) Rangify Array

You don't need to make that a non-capturing parenthesis, nor resort to lookahead/lookbehind trickery; a simple word boundary will do. Very nice trick with $+, though ;)
# 27 + 40 + 2 = 69 dude! sub num2range { #234567890123456789012345678901234567890 my$x=join',',sort{$a-$b}@_; $x=~s/\b(\d+)(,((??{$++1})))+\b/$1-$+/g; $x }

Replies are listed 'Best First'.
Re: Re: Re: (Golf) Rangify Array
by japhy (Canon) on Sep 27, 2001 at 21:09 UTC
    Hmm, good point. The capturing parens are fine. The reason I had look-ahead/behind was because I was looking at a larger problem which doesn't actually exist since we're dealing with numbers. Good move.

    _____________________________________________________
    Jeff[japhy]Pinyan: Perl, regex, and perl hacker.
    s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;