perl/unix question

Rob Ransbottom rir at mediaone.net
Thu Aug 2 10:44:35 EDT 2001


On Wed, 1 Aug 2001 bpmedley at 4321.tv wrote:

# Below are examples:
# 
# ./script.pl
# always prompt
# 
# ./script.pl file -
# no prompting when parsing 'file'
# prompt when parsing '-'
# 
# ./script.pl file
# never prompt
# 
# echo input | ./script.pl
# never prompt
# 
# echo input | ./script.pl file -
# never prompt


#!/usr/bin/perl -w
use strict;

# I'd start like this, this is off the cuff, beware.  XXX

my $on_pipe = 1;

$on_pipe = 0 if ( -t STDIN && -t STDOUT);  # maybe just STDIN

die "In pipe\n" if -t STDOUT ;  # if you want this

# this seems to be what you described, but usually
# I'd search for - and have the user finish
# their work right away.

$ARGV[0] = "-" if ( !on_pipe && @ARGV == 0);

foreach my $arg ( @ARGV ) {
   if ($arg eq "-" ) { 
      die "user input not allowed when on pipe" if $on_pipe;
      # query user
      # prep input
      &process_input;
      # finalize input
   }elsif ( $arg =~ /^-.+/ ) {  # or accept as a filename XXX
      die "commandline option not anticipated";
   }else{
      # prep file 
      &process_input;
      # finalize file
   }
}

sub process_input { 1; # XXX stub
}

-
Subcription/unsubscription/info requests: send e-mail with
"subscribe", "unsubscribe", or "info" on the first line of the
message body to discuss-request at blu.org (Subject line is ignored).



More information about the Discuss mailing list