ARGV-JSON

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN


    
);
if (-d 'share') {
    $args{share_dir} = 'share';
}

my $builder = Module::Build->subclass(
    class => 'MyBuilder',
    code => q{
        sub ACTION_distmeta {
            die "Do not run distmeta. Install Minilla and `minil install` instead.\n";
        }
        sub ACTION_installdeps {
            die "Do not run installdeps. Run `cpanm --installdeps .` instead.\n";
        }
    }
)->new(%args);
$builder->create_build_script();

my $mbmeta = CPAN::Meta->load_file('MYMETA.json');
my $meta = CPAN::Meta->load_file('META.json');
my $prereqs_hash = CPAN::Meta::Prereqs->new(
    $meta->prereqs

cpanfile  view on Meta::CPAN

requires 'perl', '5.008001';

requires 'parent';
requires 'JSON';
requires 'Tie::Handle';

on 'test' => sub {
    requires 'Test::More', '0.98';
};

lib/ARGV/JSON.pm  view on Meta::CPAN

use 5.008005;
use strict;
use warnings;
use JSON;

our $VERSION = '0.01';

our $JSON = JSON->new->utf8;
our @Data;

sub import {
    local $/;

    while (local $_ = <>) {
        $JSON->incr_parse($_);

        while (my $datum = $JSON->incr_parse) {
            push @Data, $datum;
        }
    }

    tie *ARGV, 'ARGV::JSON::Handle';
}

package
    ARGV::JSON::Handle;
use Tie::Handle;
use parent -norequire => 'Tie::StdHandle';

sub READLINE {
    if (wantarray) {
        return splice @ARGV::JSON::Data;
    } else {
        return shift @ARGV::JSON::Data;
    }
}

1;

__END__



( run in 0.262 second using v1.01-cache-2.11-cpan-4d50c553e7e )