HiFoo has asked for the wisdom of the Perl Monks concerning the following question:
I am trying to convert a ethernet addresses from the form 8:0:20:0:2:10 to 080020000210. I need to add a zero to the single digit hex numbers and strip out the colons from the address.
I could split the address using split and then recombine it without the colons, but using regular expressions sounds like more fun.
Here what works:
my $foo = "0:0A:0C:B:B8:F"; $foo =~ s/\A([0-9A-F]){1}:/0$&/g; #take care of the start $foo =~ s/:([0-9A-F]{1}):/:0$1:/g; #take care of the middle $foo =~ s/:([0-9A-F]{1})\Z/:0$1/g; #take care of the end $foo =~ s/\://g; #remove the colon
I got it working using four different expressions, but I think it is sorta a kludgy solution. Any ideas on how I could improve it?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
•Re: Converting MAC Address
by merlyn (Sage) on Jan 10, 2003 at 23:40 UTC | |
|
Re: Converting MAC Address
by rob_au (Abbot) on Jan 10, 2003 at 23:40 UTC | |
by merlyn (Sage) on Jan 11, 2003 at 00:05 UTC | |
by sauoq (Abbot) on Jan 11, 2003 at 00:08 UTC | |
|
Re: Converting MAC Address
by Enlil (Parson) on Jan 10, 2003 at 23:44 UTC | |
by HiFoo (Scribe) on Jan 11, 2003 at 00:19 UTC | |
by BrowserUk (Patriarch) on Jan 11, 2003 at 00:43 UTC | |
by Enlil (Parson) on Jan 11, 2003 at 01:59 UTC | |
by theorbtwo (Prior) on Jan 11, 2003 at 01:08 UTC | |
by poj (Abbot) on Jan 11, 2003 at 10:49 UTC |