# Data::Stream::Bulk::Util - phpMan

## NAME
    [Data::Stream::Bulk::Util] - Utility functions for [Data::Stream::Bulk]

## VERSION
    version 0.11

## SYNOPSIS
            use [Data::Stream::Bulk::Util] qw(array);

            use [namespace::clean];

            # Wrap a list in L<[Data::Stream::Bulk::Array]>
            return bulk(qw(foo bar gorch baz));

            # return an empty resultset
            return nil();

## DESCRIPTION
    This module exports convenience functions for use with
    [Data::Stream::Bulk].

## EXPORTS
    [Sub::Exporter] is used to create the "import" routine, and all of its
    aliasing/currying goodness is of course supported.

    nil Creates a new [Data::Stream::Bulk::Nil] object.

        Takes no arguments.

    bulk @items
        Creates a new [Data::Stream::Bulk::Array] wrapping @items.

    cat @streams
        Concatenate several streams together.

        Returns "nil" if no arguments are provided.

    filter { ... } $stream
        Calls "filter" on $stream with the provided filter.

    unique $stream
        Filter the stream to remove duplicates.

        Note that memory use may potentially scale to O(k) where k is the
        number of distinct items, because this is implemented in terms of a
        seen hash.

        In the future this will be optimized to be iterative for sorted
        streams.

        References are keyed by their refaddr (see "id" in
        [Hash::Util::FieldHash]).

## AUTHOR
    Yuval Kogman <<nothingmuch@woobling.org>>

## COPYRIGHT AND LICENSE
    This software is copyright (c) 2012 by Yuval Kogman.

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

