in reply to regex within an input file

Kind monks, please note that this question differs from the previous changing input file updated in that it is asking how to rewrite DATA. (It also is actually using the solution suggested in the previous thread.)

Update: since nomonk else has bitten, this is what I came up with (though I'm sure there's a better way):

Before reading from DATA, save the position in the file. (The position isn't 0, because the program before the __DATA__ mark counts.)

my $begin_data = tell(DATA);
Then, after you've read in the whole file and done the substitution to the variable, open $0 (this is the name of the script perl is running; see perlvar) with read/write access and advance to the beginning of the __DATA__ section, and print out your new data:
open my $source, "+<", $0 or die "Couldn't reopen source file: $!\n"; seek($source, $begin_data, 0) or die "Couldn't seek to beginning of DA +TA: $!\n"; print $begin_data $text;
(see perldoc tell/perldoc seek for more info.)

If the data you are replacing with is shorter than the original, you'll have to do more to make the file position after the print be the new end of the file, but it sounds as if that isn't an issue.