package ARGV::readonly;

use 5.00001;

$VERSION = '0.01';

sub import{
   # Tom Christiansen in Message-ID: <24692.1217339882@chthon>
   # reccomends essentially the following:
   for (@ARGV){
       s/^(\s+)/.\/$1/;	# leading whitespace preserved
       s/^/< /;		# force open for input
       $_.=qq/\0/;	# trailing whitespace preserved & pipes forbidden


=head1 NAME

ARGV::readonly - make <> open files regardless of leading/trailing whitespace and/or control characters such as |, >, amd <. 


this module allows

  use ARGV::readonly;

to be safer in hostile environments where one is bullheaded enough to
give * as the command line argument.  See rants on P5P from July, 2008.


the code is shorter than the documentation.  Please look at it.

=head2 EXPORT

None by default.

=head1 TO DO

ideally a suite of ARGV::* modules will appear, each doing their little thing,
in a way that they won't stomp on each other's toes.  This module has no
exclusion interface or anything, so an @ARGV modifier that, for instance,
preprocesses *.gz into C<"gunzip -c $_ |"> is either going to have to undo
the mods made here or be incompatible.

=head1 HISTORY

=over 8

=item 0.01

modified suggestion made by Tom Christiansen in Message-ID: <24692.1217339882@chthon>


=head1 SEE ALSO


July 2008 perl5 porters archive

=head1 AUTHOR

furtively assembled by
David Nicol <>


This module is hereby placed in the public domain.