Support Vector Machines are popular in the ML community these days for classification and learning. They work by taking a nonlinear problem and linearizing it in a higher dimension using the 'kernel trick' to allow for fast algorithms for both training and implementation.
In the perl world, Algorithm::SVM is a perl binding to the libsvm library that handles SVM algorithms.