in reply to serialze text in a file

I might be missing the point, but it sounds like you just want to read in all the names, then print them out again with a modified filename?

#!usr/bin/perl use strict; use warnings; my $fpath = shift @ARGV; open (my $fh, '<', $fpath) || die "Failed to open $fpath : $!"; my $matches = 0; ## counter for how many matches we have made while (<$fh>){ if ( /^(filename\s\"LKTA_mic) ## find start of name and capture it \d+ ## number bit - don't capture (\.cfg\"\;\s\}$) ## end bit - capture /gx ){ ## print out line with number modified based on how many matches w +e have seen print "$1".(($matches % 4) + 1)."$2\n"; ## increment match counter ++$matches; } else { ## didn't match so pump it straight out unmodified print $line; } }; close $fh || die "Failed to close $fpath : $!";

This just prints out to STDOUT, but it is easy enough to put it somewhere else!
You will find more elegant/short ways of doing this but i wanted to be clear...
Hope this helps!

Update Actually commenting the comments in the regex... and getting the filenumbers right

Just a something something...