NAME : convert YAML data to a Perl variable (dump) which can be parsed or eval'ed by any Perl script.


Version 0.14

SYNOPSIS -i "input.yaml" -o "output.perl" --no-escape-unicode --terse --no-indent -e < "input.yaml" > ""

    # press CTRL-D when done typing YAML to STDIN
    # input must be less than 4K long!

    # Read input from clipboard or write output to clipboard
    # Only in: Unix / Linux / OSX                
    # (must have already installed xclip or xsel or pbpaste (on OSX)) -e < $(xclip -o) -e < $(pbaste)
    # write the output to the clipboard for further pasting -i input.json | xclip -i
    # clicking mouse's middle-button will paste the result



  • --i filename : specify a filename which contains a YAML data structure.

  • --I "string" : specify a string which contains a YAML data structure.

  • --o outputfilename : specify the output filename to write the result to, which will be as a Perl variable, as a dump, which can be parsed or eval'ed from any Perl script.

  • --escape-unicode : it will escape all unicode characters, and convert them to something like "\u0386". This is the default option.

  • --no-escape-unicode : it will NOT escape unicode characters. Output will not contain "\u0386" or "\x{386}" but "α" (that's a greek alpha).

  • --terse / --no-terse : Terse form of output (no $VAR1). The second is the default option.

  • --indent / --no-indent : do not use indentation. The first is the default option.

Input can be read from an input file (--i), from a string at the command line (--I) (properly quoted!), from STDIN (which also includes a file redirection < inputfile.yaml > outputfile.perl

For more information see Data::Roundtrip.


Under Unix/Linux, the maximum number of characters that can be read on a terminal is 4096. So, in reading-from-STDIN mode beware how much you type or how much you copy-paste onto the script. If it complains about malformed input then this is the case. The workaround is to type/paste onto a file and operate on that using --i afile or redirection < afile.


Andreas Hadjiprocopis, <bliako at> / <andreashad2 at>