Try this:
#!/usr/bin/perl -w
use strict;
while (<DATA>)
{
my $number = (/(\d+)$/)[0]; #previous was \w+ oooops!
print "$number\n" if defined $number;
# "if defined" allows for blank lines, etc.
}
__DATA__
a.b.c.d=10
a.b.e.f=9999
a.f.g.h=456
#prints:
#10
#9999
#456
Update: some explanation:
my $number = (/(\d+)$/)[0];
the (/(\d+)$/) part is a "regular expression" and says to look for a sequence of digits (0-9) right before the end of the string. This is captured into an "automagic" variable called $1, but $1 doesn't have much meaning, so this regex is put into a list context and a "list slice" is used so that I can assign $1 to the variable $number which presumably will have meaning if you give it a better name in your application. The "if defined" part skips the print if for some reason this number is not found (blank line, malformed line), etc.