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 )