I am a new monk and struggling with a piece of work. I want to extract data from a string, do addition operation on that data and then substitute the data in the same string. Here is the string I am working on:
chn:req mon:orig cmd:SDP_CMD_WRSIZEDFULL tag:0x3b9aca01 addr:0xdf7780 qospri:0 len:0xf
I want to extract the hexadecimal addr:0xdf7780 value, add 0x500000000 to it and then replace the result in the same string. Here is the piece of code I am using. I am able to print the extracted address values but not able to perform addition to it.
------------------------------------
#!usr/bin/perl
unlink("ccix.sdp_trc");
$num = 0x500000000;
open (IN_FILE, "$ARGV[0]") or die "Please provide an input file\n";
open (OUT_FILE, ">>ccix.sdp_trc");
while (my $line1 = <IN_FILE>) {
if( ($line1 =~ /addr/) ) {
$line1 =~ /addr:([a-z0-9-]+)\s+/;
print "%$1\n";
my $one = ($num + $1);
$line1 =~ s/addr\:0x.*qospri/addr\:$one qospri/;
printf OUT_FILE ("$line1");
}
else {
printf OUT_FILE ("$line1");
}
}
----------------------------------------------------
Any help is appreciated!
-
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.
|