ST is right with his answer if you don't want to use a module. His method is going to be slow on a large file.
You might have a look at the File::Tail module http://search.cpan.org/~mgrabnar/File-Tail-0.99.3/Tail.pm
A good rule of thumb when you're trying to do something in Perl is to check CPAN to see if someone's solved your problem already because while it's a nice exercise to re-invent the wheel, it's usually a huge waste of time.
Your other option would be to do a block read from the tail of the file and see if you have a carriage return in the block you get. If you do, you should be able to parse it out from there. That should avoid the time problem if you're trying to do that on a large file.
Here's some sample code from an MP3 editor I wrote a while back that may help you out:
sub readfile{
my $size = (stat($mp3))[7];
$offset = $size-128;
open FH, "<$mp3" or die "Could not open file $mp3\n";
binmode FH;
seek (FH, -128, 2);
read (FH, $tag, 128);
die "No tag to edit!" if $tag !~ /^TAG/;
($info{head}, $info{t}, $info{a}, $info{l}, $info{y}, $info{c}, $info{g}) = unpack("a3a30a30a30a4a30C1",$tag);
close FH;
}
You'll need to read up on stat but the stat($mp3))[7] gets the file size from the MP3 file since an ID31 tag resided at the last 128 bytes of the file I used that technique to get the information without having to read the whole file. Ignore the unpack section as it doesn't apply to what you're trying to do.
Hope that helps!