NAME

IPC::Filter - filter data through an external process

SYNOPSIS

use IPC::Filter qw(filter);

$compressed_data = filter($data, "bzip2");

DESCRIPTION

The filter function provided by this module passes data through an external command, thus providing filtering in non-pipeline situations.

FUNCTIONS

filter(DATA, SHELL_COMMAND)
filter(DATA, PROGRAM, ARGS ...)

The SHELL_COMMAND, or the PROGRAM with ARGS if more arguments are supplied, is executed as a separate process. (The arguments other than DATA are ultimately passed to exec; see "exec" in perlfunc(1) for explanation of the choice between the two forms.) The DATA (which must be either a simple string or a reference to a string) is supplied to the process on its standard input, and the process's standard output is captured and returned (as a simple string).

If the process exits with a non-zero exit code or on a signal, the function will die. In the case of a non-zero exit code, the die message will duplicate the process's standard error output; in any other case, the error output is discarded.

SEE ALSO

IPC::Open2

AUTHOR

Andrew Main (Zefram) <zefram@fysh.org>

COPYRIGHT

Copyright (C) 2004, 2007, 2010, 2011, 2017 Andrew Main (Zefram) <zefram@fysh.org>

LICENSE

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