in reply to Improve my coding

my ($r, $rad, $twopi, $sig, $pi, $a0, $c0); my (@radii, @rads, @sigs);

This is usually a bad idea; it dumps all of your variables (some of which can be lexical) into file-scoped lexicals. No one can look at a variable declaration and see its intended scope now. (For example, $r can easily be lexical to the for loop. $rad and $sig can be lexical within the loop.)

@rads = (); @sigs = ();

That code doesn't do anything. Freshly-declared arrays are already empty.