A good model for the selection of different backend implementations is
PDL::Graphics::Simple, which can pick one of four implementations (Gnuplot, PLplot, PGPLOT, Prima). Each has a driver module supplied, which then translates operations to the actual backend module.