sub cap_ratio { local $_ = shift || return 0; /[a-zA-Z]/ || return 0; # No division by zero. my $caps = tr/A-Z//; my $chars = tr/a-zA-Z//; return $caps / $chars; } # Usage: my $sentence = "O HAI, cn u plEAZ hHELPS ME? I IZ CAT."; print $sentence, "\n"; printf "%.0f%%\n", cap_ratio($sentence) * 100; __END__ O HAI, cn u plEAZ hHELPS ME? I IZ CAT. 77%