sub foo { my $basename = $_[0] . $_[1]; my $addon = '0'; while (defined($(my $goodname = "$basename$addon")) { $addon++; } my $$goodname = $_[2]; return $goodname; }