Acme-emcA

 view release on metacpan or  search on metacpan

inc/Module/Install/Makefile.pm  view on Meta::CPAN

	for my $subdir (@_) {
		push @$subdirs, $subdir;
	}
}

sub clean_files {
	my $self  = shift;
	my $clean = $self->makemaker_args->{clean} ||= {};
	%$clean = (
		%$clean, 
		FILES => join(' ', grep length, $clean->{FILES}, @_),
	);
}

sub realclean_files {
	my $self  = shift;
	my $realclean = $self->makemaker_args->{realclean} ||= {};
	%$realclean = (
		%$realclean, 
		FILES => join(' ', grep length, $realclean->{FILES}, @_),
	);
}

sub libs {
	my $self = shift;
	my $libs = ref $_[0] ? shift : [ shift ];
	$self->makemaker_args( LIBS => $libs );
}

sub inc {

lib/Acme/emcA.pm  view on Meta::CPAN

package Acme::emcA;

use 5.004;
use strict qw[vars subs];
use vars '$VERSION';

$VERSION = '0.10E0';

open 0 or print "Can't reverse '$0'\n" and exit;
( my $code = join "", <0> ) =~ s/.*?^(\s*);?use\s+Acme::emcA\s*(?: esu)?;\n//sm;
my $max = 10 + length $1;
local $SIG{__WARN__} = \&is_forward;
do { eval forward($code); exit } if is_backward($code);
open 0, ">$0" or print "Can't reverse '$0'\n" and exit;
$max  = 10;
$code = backward($code);
$code =
    ( " " x ( $max - 10 ) )
  . ";use Acme::emcA esu;\n"
  . ( " " x ( $max * 2 ) ) . "\n"
  . $code;
print {0} $code . ( join( "\n", reverse split( /\n/, $code ) ) ), "\n" and exit;

sub forward {
    join( "\n",
        map substr( $_, $max ),
        ( split "\n", substr( $_[0], 0, length( $_[0] ) / 2 ) ) );
}

sub is_forward { $_[0] !~ /^ {20,}$/m }
sub is_backward { $_[0] =~ s/\n?.*$// if $_[0] =~ /^ {20,}$/m }

sub backward {
    @_ = split "\n", $_[0];
    length > $max && ( $max = length ) for @_;
    return join "\n", map sprintf( "%${max}s", scalar reverse $_ ) . $_, @_, '';
}

1;

__END__

=head1 NAME

Acme::emcA - Acme::emcA



( run in 0.633 second using v1.01-cache-2.11-cpan-65fba6d93b7 )