Just playing around... not to serious:
map{s[[^\@\$]][]go=>chomp,$_=[split/(\@+\$*)/=>$_]=>map{$_?do{s(
(\@+)(\$*))(chr((length$1)*10+length$2))ex=>print}:1}@$_}<DATA>;

__END__
sub proto(@@@@@@@$$$$@@@@@@@@@@@$$$$$$$@@@@@@@@@@@$$$$$
@@@@@@@@@@@$$$$$$@@@$$@@@@@@@@@$$$$$$$@@@@@@@@@@@
@@@@@@@@@@@$@@@@@@@@@@@$$$$$$@@@@@@@@@@$$$$
@@@@@@@@@@$@@@@@@@@@@@$$$$@@@$$@@@@@@@@
@@@@@@@@@@$@@@@@@@@@@@$$$$@@@@@@@@@@$$$$$$$$
@@@$$@@@@@@@$$@@@@@@@@@$$$$$$$@@@@@@@@@$$$$$$$$$
@@@@@@@@@@$$$$$$$@@@@@@@@@@$@@@@@@@@@@@$$$$@){&proto}

--
Casey