>>>>> "Damian" == Damian Conway <[EMAIL PROTECTED]> writes:

Too much typing:

Damian>         module PAIR;

Damian>         method car { return .key }
Damian>         method cdr { return .value }

Damian>         method AUTOVIVIFY (&default, $name) {
Damian>                 if ($name =~ m/^c([ad])([ad]*)r$/) {

Replace:

Damian>                         my $next = "c$2r";
Damian>                         given ($1) {
Damian>                                 when 'a': { return sub { .car.$next() } }
Damian>                                 when 'd': { return sub { .cdr.$next() } }
Damian>                         }

with:

                                my $this = "c$1r";
                                my $next = "c$2r";
                                return sub { { .$this().$next() } };

Damian>                 }
Damian>         }


Right?  Plus or minus a set of parens or something, eh?

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

Reply via email to