Skip to content

Instantly share code, notes, and snippets.

Avatar

Dan Book Grinnz

  • Connecticut, US
View GitHub Profile
View perl7faq.md

Perl 7 FAQ

last updated 2021-02-09

Is Perl 7 coming?

Maybe. It is likely this version number will be used for Perl at some point in the future.

When is Perl 7 coming?

@Grinnz
Grinnz / nil.t
Created Aug 26, 2020
Protocol::Redis::XS nil tests
View nil.t
use strict;
use warnings;
use Test::More;
use Protocol::Redis::XS;
my $redis = new_ok 'Protocol::Redis::XS', [api => 1];
$redis->parse("\$-1\r\n");
is $redis->get_message->{data}, undef, "nil bulk message";
@Grinnz
Grinnz / mapping_colors.md
Last active Nov 17, 2020
Drum Charting: Mapping Colors
View mapping_colors.md

Mapping Colors in Drum Charting

For simple drum parts that involve at most a snare, three toms, and three cymbals, it's easy to map them to colors in 4-lane drums.

  • Red: Snare
  • Yellow: High rack tom, hihat
  • Blue: Low rack tom, ride
  • Green: Floor tom, crash

But few drummers outside of pop and jazz keep their kits so limited. So you have to work whatever the drummer may use into the lanes you have. We start with the base mapping above to keep things familiar, and deviate when needed.

@Grinnz
Grinnz / protocol.t
Last active Feb 8, 2019
Mojo::Redis::Protocol test file
View protocol.t
use Mojo::Base -strict;
use Test::More;
use Mojo::Redis::Protocol;
my $protocol = Mojo::Redis::Protocol->new;
# Protocol error
ok !eval { $protocol->parse("\@") }, 'protocol error';
like $@, qr/Unknown message type/, 'right error';
is_deeply [$protocol->parse('')], [], 'state not reset';
View VariableNameReuse.pm
package Perl::Critic::Policy::VariableNameReuse;
use strict;
use warnings;
use Perl::Critic::Utils qw(:severities :classification :ppi);
use parent 'Perl::Critic::Policy';
use constant EXPL => 'Using the same name for multiple types of variables can be confusing, e.g. %foo and $foo. Use different names for different variables.';
View gist:bb31cdff63006c856aead3e3311d0c13
use strict;
use warnings;
use Mojo::UserAgent;
use Mojo::Asset::File;
# Build a normal transaction
my $ua = Mojo::UserAgent->new;
my $tx = $ua->build_tx(POST => 'http://example.com');
# Prepare body
View output
> mojo get 'http://localhost:3000//fred/fish'
[Tue Feb 20 16:28:38 2018] [debug] GET "/fish"
[Tue Feb 20 16:28:38 2018] [debug] Routing to a callback
[Tue Feb 20 16:28:38 2018] [debug] 200 OK (0.000438s, 2283.105/s)
fred⏎
View perlbug_each.txt
The 'each' function documentation is missing some information.
1. When called in scalar context in a while loop, the condition is wrapped
implicitly in a 'defined' check, much like with 'readline'.
e.g. `while (my $key = each %hash) { ... }` becomes
`while (defined(my $key = each %hash)) { ... }`, and
`while (each %hash) { ... }` becomes `while (defined($_ = each %hash)) { ... }`
(on 5.18+)
@Grinnz
Grinnz / Iterator.pm
Created Dec 6, 2017
Syntax::Keyword::WhileEach
View Iterator.pm
package Syntax::Keyword::WhileEach::Iterator;
use strict;
use warnings;
use Carp 'croak';
use Scalar::Util 'reftype';
sub new {
my ($class, $structure) = @_;
my $reftype = reftype $structure;
View .nanorc
set autoindent
set const
set historylog
set morespace
set nowrap
set smarthome
set smooth
set tabsize 4
include "/usr/share/nano/*.nanorc"