]> git.vpit.fr Git - perl/modules/Sub-Nary.git/blobdiff - lib/Sub/Nary.pm
keys/values return a 'list', each return zero or two scalars
[perl/modules/Sub-Nary.git] / lib / Sub / Nary.pm
index 861f9e59d723653d31467133ae63a0abf9d1c64b..eb26dfce3d24a411987ab91e49aba22a3fcbb10c 100644 (file)
@@ -204,8 +204,11 @@ $ops{$_} = 1      for qw/padsv/;
 $ops{$_} = 'list' for qw/padav/;
 $ops{$_} = 'list' for qw/padhv rv2hv/;
 $ops{$_} = 'list' for qw/padany flip match entereval readline/;
+$ops{each}      = { 0 => 0.5, 2 => 0.5 };
+$ops{stat}      = { 0 => 0.5, 13 => 0.5 };
 $ops{caller}    = sub { my @a = caller 0; scalar @a }->();
 $ops{localtime} = do { my @a = localtime; scalar @a };
+$ops{gmtime}    = do { my @a = gmtime; scalar @a };
 
 sub enter {
  my ($self, $cv) = @_;
@@ -253,7 +256,11 @@ sub expect_list {
  my $n = name($op);
  my $meth = $self->can('pp_' . $n);
  return $self->$meth($op) if $meth;
- return $ops{$n} => 0 if exists $ops{$n};
+ if (exists $ops{$n}) {
+  my $r = $ops{$n};
+  $r = { %$r } if ref $r eq 'HASH';
+  return $r => 0;
+ }
 
  if ($op->flags & OPf_KIDS) {
   my @res = (0);