As Cliff says, check out
Under the NGS Geodetic Tool Kit button find
You will find the Fortran (IV?} source of the Vincenty
Forward (a.k.a. Direct) algorithm to
given lat1/long1, distance and bearing.
The "3D" versions also account for altitudes
above/below the reference surface.
The Forward algorithm is also built into
my freeware GCGC program along with the more common
Inverse algorithm (lat1/long1, lat2/long2
to obtain distance bearings 1-2 and 2-1).
It will accept decimal degree n/s/w/e input.
The executable and [Fortran 77] source code
are found at my website below.
Converting forward/direct to perl should
be straightforward. If you do, could you pass
along the perl version?
The best online tutorial on distance and bearing calculations,
with worked examples, is Ed Williams's Aviation Formulary.
N 40?46' 57.9" W 74?41' 21.9"