Single perceptrons cannot fully separate problems that are not linearly separable, but you can combine perceptrons into more complex neural networks.
SVM can separate non-linear problems by use of an appropriate Kernel.
What finally is the better classifier for your particular problem is hard to tell just from the fact that your problem is non-linear separable, see "no free lunch" theorem.
One can use either perceptron or SVM when data are nonseparable, the two machineries being very similar (both can be used with or without kernels, with or without slack variables, etc -- the representational power is very similar). The difference between the two is large margin which, in the case of strongly nonseparable data, tends to be less important.
Moreover, there are a number of large margin "perceptron-like" algorithms around, i.e.,algorithms simulating the svm computation with a perceptron-like algorithm.
In any event, which algorithm is best for your specific data really depends on the data themselves.
There is no way you can say which method is the best for non-linear separable problems, But by testing it with small set can give you an insight whether the multi-layer perceptron is better than the SVM or not.