What is an alternative term for *Swiss army knife*?

As in a general multi-purpose tool.  It is a word that everybody understands, but I would like to know some alternatives.

Clarification:
The term *Swiss army knife* is often used to express a multi-purpose, versatile tool outside the contexts of knives or armies.

 - The Swiss army knife for writing books.
 - Perl is the Swiss army knife among programming languages.
 - Swiss army knife of codecs (Google's search entry completion).

I think that "multi-tool" or "one stop shop" are adequate alternative, maybe there are more?