I first tried a pack / unpack approach, that didn't
work and then went to perlman:perlre and read a bit
about the zero-width lookbehind operators ...
And this is what I came up with :
#!/usr/bin/perl -w
use strict;
my $Test = "5.ae.20.b.1c.7";
print "05.ae.20.0b.1c.07\n";
# A feeble try with pack/unpack, that dosen't work
# print join( ".", unpack( "H2" x 6, pack( "H2" x 6, split( /\./, $Tes
+t )))), "\n";
# Now a regex which uses the zero-width lookbehind and works
# the "defined $1 ? "0$1" : "" part is ugly, I admit this ...
# but I see no other way around it ;-)
$Test =~ s/(?(?<![a-f0-9])([a-f0-9]))?\./(defined $1?"0$1":"")/eig;
print $Test, "\n";
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|