perl-unicode

Encode alias implementation fixed!

2002-03-21 06:55:43
sub define_alias
{
    while (@_)
    {
        my ($alias,$name) = splice(@_,0,2);
        unshift(@Alias, $alias => $name);   # newer one has precedence
        # clear %Alias cache to allow overrides
        if (ref($alias)){
            for my $k (keys %Alias){
                if (ref($alias) eq 'Regexp' && $k =~ $alias)
                {
                    $DEBUG and warn $k;
                    delete $Alias{$k};
                }
                elsif (ref($alias) eq 'CODE')
                {
                    delete $Alias{$alias->($name)};
                }
            }
        }else{
            delete $Alias{$alias};
        }
    }
}