while () { s/^"\d+"/'"' . ++$i . '"'/e; print; } __DATA__ "1" { "time: 1247"; "sump: 15"; } "2" { "time: 1255"; "sump: 9"; } "8" { "time: 1350"; "sump: 7"; } "5" { "time: 1600"; "sump: 3"; } #### perl -i.bak -pe 's/^"\d+"/++$i; qq{"$i"}/e;' file <- Unix perl -i.bak -pe "s/^"""\d+"""/++$i; qq{"""$i"""}/e;" file <- Windows