Acme-LookOfDisapproval

Send warnings with ಠ_ಠ

OTHER License

Stars
14
Committers
1

=pod

=encoding UTF-8

=head1 NAME

Acme::LookOfDisapproval - Send warnings with ಠ_ಠ

=head1 VERSION

version 0.007

=head1 SYNOPSIS

use Acme::LookOfDisapproval;
ಠ_ಠ 'you did something dumb';

=head1 DESCRIPTION

Use C<ಠ_ಠ> whenever you would use C, to express your profound disapproval.

=head1 FUNCTIONS

=head2 C<ಠ_ಠ>

Behaves identically to L<perlfunc/warn>.

=head1 BACKGROUND

=for stopwords unicode

I wrote this as an exercise in using unicode in code, not just in a string. Then, it became an interesting learning experience in how to cleanly map to a core function, and re-exporting symbols.

The first draft did this:

use Carp 'carp';
sub ಠ_ಠ { local $Carp::CarpLevel = $Carp::CarpLevel + 1; carp @_; }

And then it became:

BEGIN {
    no strict 'refs';
    *{__PACKAGE__ . '::ಠ_ಠ'} = *CORE::warn;
}

But this is even nicer:

sub ಠ_ಠ { goto &CORE::warn }

I also played around with LImport::Into to manage the export of both the L pragma and the C<ಠ_ಠ> symbol. However, that's just silly when we can call C directly on L (it's a pragma, so the caller doesn't matter -- only when it is called: during the caller's compilation cycle), and then we can export our symbol by using L to jump to L.

=for stopwords dzil utf8

I also discovered while writing this distribution that LDist::Zilla is not able to munge files with utf8 characters, therefore I had to switch to packaging this distribution with vanilla LExtUtils::MakeMaker; also, a number of the author and release tests that would have been added by dzil automatically didn't work either (for example, see C<t/00-compile.t> -- C<< qx(^$X "require $_") >> both needs the C<:binmode> or C<:encoding(UTF-8)> layer applied to C, and requires the L pragma applied in the sub-perl (leading to more patches).

=head1 SEE ALSO

=over 4

=item *

L<the Look of Disapproval Meme|http://knowyourmeme.com/memes/%E0%B2%A0_%E0%B2%A0-look-of-disapproval>

=item *

L - another example of unicode sub names

=back

=head1 SUPPORT

Bugs may be submitted through L<the RT bug tracker|https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-LookOfDisapproval> (or L<[email protected]|mailto:[email protected]>).

I am also usually active on irc, as 'ether' at C<irc.perl.org>.

=head1 AUTHOR

Karen Etheridge [email protected]

=head1 COPYRIGHT AND LICENCE

This software is copyright (c) 2013 by Karen Etheridge.

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

=cut