sub dargv { local *ARGV; @ARGV = @_; [<>]; } sub dopen { my @t = map { open my $fh, '<', $_ or warn "Can't open `$_': $!\n"; <$fh>; } @_; \@t; } #### sub mkaref { [@_] } #### # the most reasonable thing for this strange beast, IMHO sub mksref { @_ == 1 ? do { my $x=$_[0]; \$x } : "@_"; # users can play with (a localized) $" } sub mkhref { my %x; @x{@_}=(); \%x; } sub mkcref { my @x = @_; sub { @x }; # a closure }