perl -i~ -pe 'if($ARGV ne $l){$f=$l=$ARGV;$f=~s/\.wra//;substr($_,-11)=$f.$/;}' *
OK, that looks crazy, I'm sure. Here's what's happening:
-i~ is doing an in-place edit of each file, and creating a backup extension of ~. That's in case there are mistakes in the code.
-pe is going to cycle through each line of each file, and print the contents of $_ at the end of the expression.
$ARGV is the name of the current file being looked at. The "if" statement checks to see when a new file is opened. When that happens, $_ is the first line of the new file.
$f is the filename without the .wra extension after the regular expression s/\.wra//.
The "substr($_,-11)=$f.$/" expression takes the last 11 characters of the first line (including the \n at the end) and replaces it with the contents of $f and another \n.
The asterisk at the end means each file in the current directory is going to be passed to the script. You may want to replace that with *.wra