]> git.vpit.fr Git - perl/modules/Sub-Nary.git/blobdiff - lib/Sub/Nary.pm
eval '...' should be interpreted as returning a list
[perl/modules/Sub-Nary.git] / lib / Sub / Nary.pm
index f408f8c50ff5fdd31d42ab622e401c8a8b4cf329..5ff05745418108e0f388d291a7ccf046ec9bc75e 100644 (file)
@@ -202,11 +202,12 @@ $ops{$_} = 0      for qw/stub nextstate/;
 $ops{$_} = 1      for qw/padsv/;
 $ops{$_} = 'list' for qw/padav/;
 $ops{$_} = 'list' for qw/padhv rv2hv/;
-$ops{$_} = 'list' for qw/padany flip match/;
+$ops{$_} = 'list' for qw/padany flip match entereval/;
 
 sub enter {
  my ($self, $cv) = @_;
 
+ return 'list' if class($cv) ne 'CV';
  my $op  = $cv->ROOT;
  my $tag = tag($op);
 
@@ -278,7 +279,7 @@ sub expect_any {
 
  return ($self->expect_list($op))[0] => 1 if name($op) eq 'return';
 
- if (class($op) eq 'LOGOP') {
+ if (class($op) eq 'LOGOP' and not null $op->first) {
   my @res;
   my ($p, $r);
 
@@ -304,7 +305,7 @@ sub expect_any {
  return $self->expect_list($op);
 }
 
-# Stolen from Sub::Deparse
+# Stolen from B::Deparse
 
 sub padval { $_[0]->{cv}->[0]->PADLIST->ARRAYelt(1)->ARRAYelt($_[1]) }