On Wed, Jul 05, 2006 at 11:31:55AM -0500, Kevin Viel wrote:
> Mr. Shawn H. Corey wrote:
> >Kevin Viel wrote:
> >
> >>I call a perl script from SAS using a pipe. The file on which the
> >>script acts changes. Is there a way to provide the file name to the
> >>script using STDIN on the command line? The SAS call looks like:
> >>
> >>filename ABI pipe "perl C:/base.ps" ;
> >>
> >>For now, I altered the script to read a text file containing the file
> >>name, but this is wasteful. I appreciate any comments.
> >>
> >
> >
> >I'm not exactly sure what you're asking but try this:
> >
> >my $filename = <STDIN>;
> >chomp $filename;
> >@ARGV = ( $filename );
> >while(<>){
> > ...
> >}
>
> That should work, but I cannot use the keyboard to provide the STDIN.
> Instead I was hoping for something like:
>
> filename ABI pipe "perl C:/base.ps >file.ab1" ;
About the easiest way to get information from a file specified at the
command line, as far as I'm aware, is via while loop like so:
while(<>) {
do stuff;
}
If that's the beginning of your program, it will automatically grab the
contents of a file specified by name as a command line argument one line
at a time, and exit the while loop when EOF is reached. The lines of
the file, as the example loop is written above, are on each iteration
assigned to the $_ scalar variable.
This is especially handy since, if you don't specify a filename, it
defaults back to taking input from the keyboard as though you had used
the STDIN filehandle.
--
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
unix virus: If you're using a unixlike OS, please forward
this to 20 others and erase your system partition.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>