Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^3: Insert colons into a MAC address

by mantager (Sexton)
on Jan 14, 2012 at 22:44 UTC ( #947917=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Insert colons into a MAC address
in thread Insert colons into a MAC address

Well, I think I'll choose this:

$mac =~ s/([0-9a-fA-F]{2})\B/$1:/g;


which can be also spelled as:

$mac =~ s/(\p{Hex}{2})\B/$1:/g;

The [:xdigit:] class does not work (I don't know why).

@Not_a_Number: probably there isn't a reason to prefer a regex over 'unpack' or the use of a module, in this case, since this regex is not really more readable than other methods.
Anyway I'm more familiar with regexes than with unpack or the Net::MAC module, so there is a chanche that I will recognize and understand that sooner when looking again at my code in the future.
As for modules, I often avoid (or completely overlook) them, because I usually have little or no control on the systems I work onto (so installing a module can be a tricky or impossible task). I see that "use a module" vs "reinvent the wheel" is an ever discussed problem. I'm on the "reinvent the wheel" side, but it's not my fault :)

Thanks to all, bye.

Edit:
jut in case someone come here in the future.

[:xdigit:]

actually works:

$mac =~ s/([[:xdigit:]]{2})\B/$1:/g;

I just didn't put enough square brackets. [:xdigit:] is equivalent to [:xdigt] (literally), while [[:xdigit:]] is equivalent to [0-9a-fA-F]. Reading the f. manual helps as usual :)


Comment on Re^3: Insert colons into a MAC address
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://947917]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2015-07-07 00:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (85 votes), past polls