Actually, both the implication of permanent attachment and spatial rather than temporal seem to fit. The first is clear cut--it is a permanent modification, unlike some of the other modules that support unwrapping.
The second is more of how you think about it. I think about it as a code block that's inserted at the very beginning, i.e. "as a string", so
prepend foo => sub {
# Remove the invocant.
shift;
};
sub foo {
print shift;
}
is equivalent to
sub foo {
{
# Remove the invocant.
shift;
}
print shift;
}
That doesn't mean I'm set on prepend. Spelled-out suggestions are still welcome.
lodin