NAME

Acme::ButFirst - Do something, but first do something else.

SYNOPSIS

use Acme::ButFirst;

# Print a greeting, but first find caffiene.

{
	print "Good morning!\n";
} but first {
	print "I need a coffee\n";
}

# Count from 1 to 10, but first print a statement
# about our counting skills.

foreach my $count (1..10) {
	print "$count\n";
} but first {
	print "I can count to...";
}

# Print our lines, but first reverse them, but first convert
# them into upper case.

while (<>) {
	print;
} butfirst {
	$_ = reverse $_;
} butfirst {
	$_ = uc $_;
}

DESCRIPTION

Acme::ButFirst allows you to execute a block of code, but first do something else. Perfect for when you wish to add to the start of a long block of code, but don't have the energy to scroll upwards in your editor.

Acme::ButFirst recognises both butfirst and but first as keywords.

Usage of Acme::ButFirst is lexically scoped. ButFirstification can be explicitly disabled by using no Acme::ButFirst.

SEE ALSO

http://lists.slug.org.au/archives/slug/2005/09/msg00346.html

Acme::Dont::t, Acme::ComeFrom, Acme::Goto::Line

BUGS

Any use of this module should be considered a bug.

Strings in the form of " { work } but first { coffee } " may sometimes be incorrectly munged.

AUTHOR

Paul Fenwick <pjf@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2005 by Paul Fenwick

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.