Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Performing addition on hex value extracted from a string

by jwkrahn (Abbot)
on Feb 21, 2019 at 20:24 UTC ( [id://1230326]=note: print w/replies, xml ) Need Help??


in reply to Performing addition on hex value extracted from a string

#!usr/bin/perl unlink("ccix.sdp_trc");

That should probably be:

#!/usr/bin/perl use warnings; use strict; unlink("ccix.sdp_trc");
I want to extract the hexadecimal addr:0xdf7780 value, add 0x500000000 to it and then replace the result in the same string.

If the addr:0xdf7780 value is always six digits long then you can do a simple text substitution:

$ perl -le'$x = "hexadecimal addr:0xdf7780 value"; print $x; $x =~ s/ +addr:0x \K (?= [[:xdigit:]]+ ) /500/x; print $x' hexadecimal addr:0xdf7780 value hexadecimal addr:0x500df7780 value

If the addr:0xdf7780 value is always less than nine digits long then you can do:

$ perl -le'$x = "hexadecimal addr:0xdf7780 value"; print $x; $x =~ s/ +addr:0x \K ( [[:xdigit:]]+ ) / $y = "500000000"; $l = length $1; subs +tr $y, -$l, $l, $1; $y /xe; print $x' hexadecimal addr:0xdf7780 value hexadecimal addr:0x500df7780 value

Otherwise, this will work:

$ perl -le'$x = "hexadecimal addr:0xdf7780 value"; print $x; $x =~ s/ +addr:0x \K ( [[:xdigit:]]+ ) / sprintf "%x", hex( $1 ) + 0x500000000 +/xe; print $x' hexadecimal addr:0xdf7780 value hexadecimal addr:0x500df7780 value

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (7)
As of 2024-04-18 11:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found