Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

perl/unix question



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).




BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org