++ed by:
1 non-PAUSE user
Author image Philippe Bruhat (BooK)
and 50 contributors


meta - A simple front-end to Acme::MetaSyntactic


meta [ --whitespace|ws ] [ --help ] [ --version ] [ --remote ] [ --check ] [ --sources ] [ --category category ] theme[/category] [ count ]


meta is a simple front-end to Acme::MetaSyntactic.

A few examples should make it easy to understand what it does and how it works:

    $ meta
    $ meta batman
    $ meta donmartin 3
    $ meta -ws browser 4
    arachne netscape voyager w3m

In short, the default theme is foo, the default count is 1, the default separator is $/, but you can replace it by whitespace with --ws.


The following command-line options are available:

Metasyntactic options

--whitespace, --ws

Print all items on a single line, separated by space.


Fetch the remote list (if available) and print it.


Fetch the remote list (if available) and print only the differences betwen the current list and the remote list (items are prefixed by + and -).

Option added by Abigail.

The output of this option is affected by the --whitespace option.

--category category

Only select items in the given category (for Acme::MetaSyntactic::MultiList subclasses). If not given, use the default category.

Silently fallbacks to the default if the category doesn't exist.

Another way to ask for a specific category is to skip the --category option and directly ask for theme/category. Note that you cannot use both calling conventions simultaneously.

Informative options

The program will exit if any of these options is selected. However, these options can be combined.


Print the list of available themes.


Print the URLs used by a remote list.


Print version information.


Print a short help message.


meta is the script of choice for a new generation of hackers. Here are a few comments from satisfied users:

  • Acme::MetaSyntactic makes me more productive when I have to write regression tests for my Perl modules. No more do I spend time looking for variable names! It simply changed my life.

    -- Rafael Garcia-Suarez, pumpking, used AMS when writing tests for Sub::Identify.

  • Acme::MetaSyntactic gave names for regression tests in the Perl core

    See https://github.com/Perl/perl5/commit/adc51b978ed1b2e9d4512c9bfa80386ac917d05a.

  • Your module has been a wonderful timesaver for me. How much time I used to spend on thinking about good and meaningful variable names, and now I have them at the snap of a finger!

    -- Gisbert W. Selke

  • [...] with the help of Acme::MetaSyntatic I've been able to do some rudimentary code generation techniques that save me a lot of time without much outlay.

    -- Mark Fowler


  • When writing example applications, I almost always use variable names such as foo and bar. This gets boring, and it easily confuse the reader. Especially when I need to use more variables.

    -- Gabor Szabo



Ever needed to debug with the help of a few print() statements? Simply map some keystrokes to insert a warning where you want it. With meta, you will never need to think about what write in the string argument:

    nmap _wa :r!meta donmartin<CR>iwarn"<Esc>A";<Esc>==

(This mapping kindly given by Rafael Garcia-Suarez.)


Philippe "BooK" Bruhat, <book@cpan.org>.


Copyright 2005-2006 Philippe 'BooK' Bruhat, All Rights Reserved.


This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.