How to step over the STDIN, while input redirection is not given at commandline

2002-02-14 Thread SubbaReddy M

Hello Gurus,
Source code: of printFile.pl
#   File: printFile.pl  ##
#! /usr/bin/perl -w
my (@data, $user);

# Input rediretion file

$user = (defined @ARGV) ? shift @ARGV : Anonymous;

# I don't wish to prompt by program, but it's still waiting how to Step Over
here
@data = STDIN if ( defined STDIN);

die   perl $0  data.txt if (@data);

print User: $user \n;
foreach (@data){
print $_;
}

1;
### EOF #



I have a perl scripts, which expects the input file as redirection at
command line.
i.e.,
[user3@Linux] #  perl printFile.pl   data.txt

= This will display the inputed file content, if file name is piped as
redirection.
= Otherwise, program will wait to accept the file.
= So, I don't want program prompt for the file name,
= I would like to check the file name is given or not.
= But, becuase of STDIN statement in program to dump the content of the
file into Array, will cause to wait ifdata.txt is missing at command
line.
= It's very easy, if @ARGV checking, will have the command line parameters.
But, it 's not in command line paramenters list.
= It is input redirection.

= How to check the input direction is given or not in perl, @ = STDIN;
= like @ = STDIN if ( defined STDIN );   But this will not full fill
the requirement, because, it's prompting
for input, if redirection missing at commandline.

Please, kindly give me suggestions to proceed.

Thanks in advance.

Regards,

~ SubbaReddy .M
   Sr. Programmer, Frontlinesoft, Hyderabad
   http://www.frontlinesoft.com
   Ph: 91-40-3392147, 3391683 (O)
 91-40-3307980 ( R)
   w3page: http://www.geocities.com/msubbareddy/
   ICQ: 56093095



Re: How to step over the STDIN, while input redirection is not given at commandline

2002-02-14 Thread Dan Boger

On Thu, Feb 14, 2002 at 03:34:56PM +0530, SubbaReddy M wrote:
 = How to check the input direction is given or not in perl, @ = STDIN;
 = like @ = STDIN if ( defined STDIN );   But this will not full fill
 the requirement, because, it's prompting
 for input, if redirection missing at commandline.

#!/usr/bin/perl

unless (-t STDIN) {
  @a = STDIN;
} else {
  print No file\n;
}

HTH!

-- 
Dan Boger
Linux MVP
brainbench.com