I looked through the docs I could find, and can't find any way to
determine the "Unicode AGE" of a particular codepoint except for:
a) running /\p{Present_in: FOO}/ for all forseeable values of FOO;
If you want to know the AGE then you should match the Age property;-)
$ perl -E 'say "matches" if ("\x{0514}" =~ m/\p{Age=5.1}/)'
matches
b) manually parsing $out = do 'unicore/To/Age.pl';.
Or write a better Unicode::UCD module.
I really wanted to do this, because Unicode::UCD does not use the
original UCD--it also uses unicore.
You can install Unicode::Tussle from CPAN. It provides some scripts.
Examples:
$ perl /usr/local/bin/unichars '\p{Age=6.0}' '\p{Cyrillic}' | cat
Ô¦ U+0526 CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
Ô§ U+0527 CYRILLIC SMALL LETTER SHHA WITH DESCENDER
ê™ U+A660 CYRILLIC CAPITAL LETTER REVERSED TSE
ꙡ U+A661 CYRILLIC SMALL LETTER REVERSED TSE
$ time perl /usr/local/bin/uniprops -au U+0526 | grep -P '(Age|Pre)'
Age=6.0 Bidi_Class=L Bidi_Class=Left_To_Right BC=L
Block=Cyrillic_Supplement Block=Cyrillic_Supplementary
Numeric_Value=NaN NV=NaN Present_In=6.0 IN=6.0 SC=Cyrl
Script=Cyrl Sentence_Break=UP Sentence_Break=Upper SB=UP
real 0m1.380s
user 0m1.352s
sys 0m0.040s
You see, that's very famous information, but it's very slow.
Another disadvantage of uniprops is that it also uses unicore-files and
thus depends on perl-5.14 (more or less). 5.10 misses many properties in
unicore.
IMHO you want something what I am also missing:
use Unicode:

roperties;
my $u = Unicode:

roperties->new();
my $age = $u->get_property($char, 'Age');
my $script = $u->get_property($char, 'Script');
Helmut Wollmersdorfer