You appear to be passing the commands in to the standard input of the program. If there isn't a good reason for that then you can pass them on the command line:
my ($command1, $command2, $command3) = @ARGV; $command2 = 'default' unless defined $command2; $command3 = 'hoo hah' unless defined $command3; # OR my $command1 = shift or die; # Ideally call a subroutine to print usag +e and die my $command2 = shift || 'default'; my $command3 = shift || 'hoo hah';
If you have to read from STDIN then you can check to see if it still has stuff available using the eof function:
my $command1 = <STDIN>; chomp($command1); my ($command2, $command3) = ('default', 'hoo hah'); unless (eof(STDIN)) { $command2 = <STDIN>; chomp $command2; unless (eof(STDIN)) { $command3 = <STDIN>; chomp $command3; } }
-ben
In reply to (Knob)Re: Forking Multiple Children
by knobunc
in thread Forking Multiple Children
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |