in reply to Re: Concatenate and join
in thread Concatenate and join

Interesting. I normally only think of pack and unpack in the context of working with binary buffers, which I seldom do in Perl.

While researching regex ideas, I did see your post at Re: Insert colons into a MAC address which is sort of similar to this problem, but I couldn't see how to apply it to leave off the final "." in my regex.

Replies are listed 'Best First'.
Re^3: Concatenate and join
by choroba (Cardinal) on Mar 31, 2016 at 14:57 UTC
    It's not possible to use the same trick. You want to concatenate the two groups every time, but skip the dot sometimes. Maybe with eval:
    s/(\w+):(\w+)(:?)/ $1 . $2 . '.' x !!$3 /ge;

    or use two steps (which makes it similar to your solution):

    s/(\w+):(\w+)/$1$2/g; tr/:/./;

    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,