use Modern::Perl; my @replace = map int(rand(99999)), (0 .. 10); while () { do {print; next} unless /^eval/; s/(?<=\[)(\d+)(?=])/$replace[$1]/ge; print; } __DATA__ @a = ("'hello world'",'print ', ';'); eval("$a[1]$a[0]$a[2]");