my $file = "file"; # why not... my $temp = "temp"; # makes sense if you later want to use # some other basename for your sequence of files foreach (1..5){ open $file, '>', "$temp$_"; # you just turned $file from a string into a filehandle... ... }