I already discussed at unscoped eval, but there will never be enough shameless plugs in perlmonks for Perl6 and parrot.
#! /usr/bin/perl use strict; use Switch 'Perl6'; use Carp; sub enum { my @enum = split /,/, $_[0]; my $i = 0; for (@enum ) { given ($_) { when m/([A-Z]+\d*)(?:\s*=\s*(\d)+)?/i { m/([A-Z]+\d*)(?:\s*=\s*(\d)+)?/i; no strict; $i = $2 if defined $2; eval "sub $1() { $i }"; $i++; } else { croak qq(bad enum member syntax: "$_") } } } } enum "INFIX, PREFIX=4, SUFFIX" ; print INFIX(), ":", PREFIX(), ":", SUFFIX(), "\n";
-- stefp -- check out TeXmacs wiki
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: perl6: Switch, another case (pun indented) for scopeless eval
by Elian (Parson) on Jul 12, 2002 at 18:01 UTC | |
by stefp (Vicar) on Jul 12, 2002 at 18:25 UTC | |
|
Re: perl6: Switch, another case (pun indented) for scopeless eval
by Anonymous Monk on Jul 12, 2002 at 18:31 UTC |