Luke Palmer <[EMAIL PROTECTED]> writes:
> On Tue, 30 Apr 2002, Miko O'Sullivan wrote:
>
>> > Damian, now having terrible visions of someone suggesting C<elswhen> ;-)
>>
>> Then may I also give you nightmares on: elsdo, elsdont, elsgrep, elstry ...
>
> Ooh! Why don't we have a dont command! With several variants:
> dont FILE
> dont BLOCK
>
> dont { print "Boo" }
Hmm... what sort of semantics do you suggest? Just noop the following
block?
sub don't (&) { return }
I really should get 'round to releasing the semi mythical
Acme's::Abbreviations module. Here's a taster. I really hope that it
won't be possible to perpetrate this sort of thing in Perl 6:
package Acme's::Abbreviations;
@ISA = 'Bloody Silly Thing To Do';
our $VERSION = '0.01';
sub can't {
my $target = shift;
if (UNIVERSAL::isa($target, 'UNIVERSAL')) {
return ! $target->can(@_);
} else {
return ! UNIVERSAL::can($target, @_);
}
}
*doesn't = \&can't;
sub isn't {
my $target = shift;
if (UNIVERSAL::isa($target, 'UNIVERSAL')) {
return ! $target->isa(@_);
} else {
return ! UNIVERSAL::isa($target, @_);
}
}
sub won't {
my $target = shift;
my $method = shift;
eval { $target->can't($method) &&
$target->can't('AUTOLOAD') };
}
sub mightn't {
my $target = shift;
my $method = shift;
eval { $target->can't($method) &&
$target->can('AUTOLOAD') };
}
sub mustn't {
my $target = shift;
my $method = shift;
no strict 'refs';
my $old_glob = \ $ {"${target}::"}{$method};
delete $ {"${target}::"}{$method};
*{"$target\::$method"} = *{$old_glob}{$_} for (qw/ SCALAR HASH ARRAY IO /);
1;
}
# Preloaded methods go here.
1;
--
Piers
"It is a truth universally acknowledged that a language in
possession of a rich syntax must be in need of a rewrite."
-- Jane Austen?