Skip to content

Instantly share code, notes, and snippets.

View rwstauner's full-sized avatar
💤
I may be slow to respond.

Randy Stauner rwstauner

💤
I may be slow to respond.
View GitHub Profile
@rwstauner
rwstauner / curl.sh
Last active August 29, 2015 13:56
Find "main modules" that have pod but no matching `=head1 NAME`
curl api.metacpan.org/file/_search -d '{ "filter": {"and":[ {"missing": {"field": "documentation"}}, {"exists": {"field": "file.module.name"}}, {"exists": {"field": "description"}}, {"term": {"mime": "text/x-script.perl-module"}}, {"term": {"status": "latest"}} ]}, "fields": ["distribution", "path", "file.module.name", "date"], "size":1140, "sort": [{"date":"desc"}] }' > unnamed-pod.json
@rwstauner
rwstauner / cpangrep.txt
Last active August 29, 2015 13:57
Use cpangrep to search pod headings and get a list of distributions to reindex
$ cpangrep '=head1\s{2,}NAME\b'
147 results in 23 files. Showing first 23 results.
BLX/XSDSQL_20130411/xsdsql/lib/blx/xsdsql/connection.pm
130:
131:=head1 NAME
→ 115 more files matched in XSDSQL_20130411.
CPANEL/cPanel-TaskQueue-0.606/lib/cPanel/TaskQueue.pod
@rwstauner
rwstauner / command.sh
Last active August 29, 2015 14:11
Pod::Simple parsing binary
perl -e ' print "hi\n\n=F\0?}\302\240\0?}\302\200\n\nyo\n" '| perl -0777 -M'5; sub Pod::Simple::DEBUG { 10 }' -MPod::Text -ne ' my $parser = Pod::Text->new( code => 0, alt => 1, sentence => 0, width => 78 ); $parser->no_errata_section(1); $parser->parse_string_document($_) '
@rwstauner
rwstauner / input.pl
Created January 8, 2015 18:12
perl, pod, and data tokens
# Module::Faker should prepend 3 lines above this
=head1 NAME
Pod::With::Data::Token - yo
=head1 SYNOPSIS
use warnings;
print <DATA>;
#!/usr/bin/env perl
# This chunk of stuff was generated by App::FatPacker. To find the original
# file's code, look for the end of this BEGIN block or the string 'FATPACK'
BEGIN {
my %fatpacked;
$fatpacked{"Devel/PatchPerl.pm"} = <<'DEVEL_PATCHPERL';
package Devel::PatchPerl;
BEGIN {
$Devel::PatchPerl::VERSION = '0.32';
@rwstauner
rwstauner / weirdness.pl
Created June 26, 2011 22:12
Perl bug? Weird combination of do, local, and something else? (http://bit.ly/mhaQ4x)
# original weirdness: same result changing local to my and if(){} to bare {}
sub weird {
my ($c) = @_;
if( ref $c ){
return (ref $c eq 'SCALAR' ? 't' : do { local $/; warn "# doing\n"; 'do'; });
}
return 'r';
}
# fix: no local, no my
@rwstauner
rwstauner / accessor_maker.pm
Created November 29, 2011 17:52
Devel::Cover 0% branch coverage for externally defined methods
package accessor_maker;
sub import {
no strict 'refs';
*{ caller() . '::' . 'foo' } = sub { $_[0]->{ 'foo' } };
}
1;
@rwstauner
rwstauner / main.pl
Created April 30, 2012 16:18
trying to figure out win32 STDIN hang with IPC::Open2
$arg = ' ' . shift @ARGV;
$script = qq[perl pipe1.pl $arg];
system(q{perl -e "print qq[hi$/there$/]" | } . $script);
use IPC::Open2 "open2";
$pid = open2($out, $in, $script);
$|=1;
print $in qq[hi$/there$/];
@rwstauner
rwstauner / req
Last active December 13, 2015 18:08
Examples of paths used for perl modules (inside their releases) that aren't beneath "lib/" or in the root (no directory)
*$ perl -MJSON -Mojo -e '$j = j(p( $ARGV[1], $ARGV[0] )->body); @f = map { $_->{fields} } @{ $j->{hits}{hits} }; print @f ? JSON->new->utf8->pretty->encode([@f, {total => $j->{hits}{total}}]) : $j' '{"query":{"match_all":{}}, "filter":{"and":[ {"term":{"module.indexed":true}}, {"term":{"status":"latest"}}, {"not": {"or": [{"prefix":{"path":"lib/"}}, {"term":{"level":0}}] } }]}, "fields":["release", "module.name", "path"],"size":50}' "https://api.metacpan.org/module/_search"
[
{
"module.name" : "XML::Pastor::Test::Type::Country_name",
"path" : "test/out/lib/XML/Pastor/Test/Type/Country_name.pm",
"release" : "XML-Pastor-1.0.4"
},
{
"module.name" : "XML::Pastor::Test::Type::Country",
"path" : "test/out/lib/XML/Pastor/Test/Type/Country.pm",
package inc::AlienBuild;
use Moose;
extends 'Dist::Zilla::Plugin::ModuleBuild';
with 'Dist::Zilla::Role::FileGatherer';
sub gather_files {
my ($self) = @_;
my $file = $self->zilla->main_module->name;