perl search and replace - search in first line and replance in 2nd line

Dear All,

i want to search particular string and want to replance next line value.

following is the test file.
search string is
tmp,???
,10:1 "???" may contain any 3 character it should remain the same and next line replace with ,10:50

tmp,123 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
abc,666
,10:1
tmp,111 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
tmp,123 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
aaa,666
,10:1 -- do not replace as above line is not matching "tmp,???"
,10:1 -- do not replace as above line is not matching "tmp,???"

thank you

awk '/tmp,[0-9][0-9][0-9]/{print;getline;$0=",10:50"}1' file
$
$
$ # show the contents of the data file called "f4"
$
$ cat f4
tmp,123 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
abc,666
,10:1
tmp,111 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
tmp,123 --- if match tmp,??? then replace below line
,10:1 --- replace as ,10:50
aaa,666
,10:1 -- do not replace as above line is not matching "tmp,???"
,10:1 -- do not replace as above line is not matching "tmp,???"
$
$
$ # run the Perl one-liner that processes the data in the file "f4"
$
$ perl -plne 'if(/^tmp,\d{3}/) {$x=1} elsif($x) {$_=",10:50"; $x=0}' f4
tmp,123 --- if match tmp,??? then replace below line
,10:50
abc,666
,10:1
tmp,111 --- if match tmp,??? then replace below line
,10:50
tmp,123 --- if match tmp,??? then replace below line
,10:50
aaa,666
,10:1 -- do not replace as above line is not matching "tmp,???"
,10:1 -- do not replace as above line is not matching "tmp,???"
$
$

tyler_durden

perl -p0e 's/(tmp,...\n,10:)1/${1}50/g' file