in reply to Re^3: Regex overlap in MAC address
in thread Regex overlap in MAC address

how about trying these? just playing with your fastest and adding sentinal ':'s before processing and removing them after.
zen3 => 'my $mac = ":".$data.":"; $mac =~ s/(?<=:)(?=[0-9a-fA-F](?: +:))/0/g; $mac =~ s/^:|:$//; $mac;', zen4 => 'my $mac = ":$data:"; $mac =~ s/(?<=:)(?=[0-9a-fA-F](?::))/ +0/g; $mac =~ s/^:|:$//; $mac;', zen5 => 'my $mac = ":$data:"; $mac =~ s/(?<=:)(?=[0-9a-fA-F](?::))/ +0/g; $mac = substr $mac, 1,-1; $mac;',
my results are varied:
Rate zen2 zen3 ike_fast zen4 zen5 zen2 152990/s -- -1% -1% -4% -6% zen3 154915/s 1% -- -0% -3% -5% ike_fast 155051/s 1% 0% -- -3% -5% zen4 159115/s 4% 3% 3% -- -2% zen5 162584/s 6% 5% 5% 2% -- Rate zen2 ike_fast zen4 zen3 zen5 zen2 147082/s -- -3% -3% -3% -5% ike_fast 150866/s 3% -- -0% -1% -3% zen4 151345/s 3% 0% -- -1% -3% zen3 152312/s 4% 1% 1% -- -2% zen5 155404/s 6% 3% 3% 2% -- Rate zen2 ike_fast zen4 zen5 zen3 zen2 132209/s -- -1% -4% -10% -13% ike_fast 134054/s 1% -- -3% -9% -11% zen4 137554/s 4% 3% -- -6% -9% zen5 147053/s 11% 10% 7% -- -3% zen3 151234/s 14% 13% 10% 3% -- Rate zen2 ike_fast zen3 zen4 zen5 zen2 148516/s -- -2% -3% -4% -7% ike_fast 151827/s 2% -- -1% -1% -5% zen3 153467/s 3% 1% -- -0% -4% zen4 153946/s 4% 1% 0% -- -4% zen5 159757/s 8% 5% 4% 4% --

Replies are listed 'Best First'.
Re^5: Regex overlap in MAC address
by ikegami (Patriarch) on Sep 12, 2006 at 19:11 UTC
    No fair changing the initialization code. It can't be change since the OP's modification was done in-place.
    zen3 => 'my $mac = $data; $mac = ":" . $data . ":"; $mac =~ s/(?<=:)(?=[0-9a-fA-F](?::))/0/g; $mac =~ s/^:|:$//; $mac;', zen4 => 'my $mac = $data; $mac = ":$data:"; $mac =~ s/(?<=:)(?=[0-9a-fA-F](?::))/0/g; $mac =~ s/^:|:$//; $mac;', zen5 => 'my $mac = $data; $mac = ":$data:"; $mac =~ s/(?<=:)(?=[0-9a-fA-F](?::))/0/g; $mac = substr $mac, 1,-1; $mac;',

    Fixing that didn't affect the result, however.

    Rate jwkrahn1 skeeve jwkrahn2 ike_orig ike_fast zen4 +zen3 zen5 jwkrahn1 62625/s -- -4% -4% -12% -36% -42% +-43% -44% skeeve 65186/s 4% -- -0% -8% -33% -40% +-40% -42% jwkrahn2 65395/s 4% 0% -- -8% -33% -40% +-40% -42% ike_orig 71122/s 14% 9% 9% -- -27% -34% +-35% -37% ike_fast 97408/s 56% 49% 49% 37% -- -10% +-11% -13% zen4 108516/s 73% 66% 66% 53% 11% -- + -1% -4% zen3 109083/s 74% 67% 67% 53% 12% 1% + -- -3% zen5 112484/s 80% 73% 72% 58% 15% 4% + 3% --

    Your three are equally fast, and slightly faster than the previous best.