http://qs321.pair.com?node_id=178024


in reply to Writing to command line when prompted

I am not sure I completety understand what you are trying to do, but giving filenames on the commandline is quite easy. You could simply do:
my ($filename_in, $filename_out) = @ARGV;
which gives you the two filenames in $filename_in and $filename_out.

------ kurt

Replies are listed 'Best First'.
Re: Re: Writing to command line when prompted
by amphiplex (Monk) on Jun 28, 2002 at 14:58 UTC
    Though I am sure that the better approach is to change the first script, here is a (very) simple solution to feed the two filenames to the script.

    I assume your first script looks something like this:
    use strict; my ($filename_in, $filename_out); while ($filename_in eq "") { print "IN file: "; $filename_in = <>; chomp $filename_in; } while ($filename_out eq "") { print "OUT file: "; $filename_out = <>; chomp $filename_out; } print "IN: [$filename_in]\n"; print "OUT: [$filename_out]\n";

    Then you could use this script to execute the first script and feed the two filenames to it:
    use strict; my $command = "./script1.pl"; my ($filename_in, $filename_out) = qw(infile outfile); system ("echo \"$filename_in\n$filename_out\n\" | $command");
    Assuming, of course, you are on a Un*x machine, echo is in your path,the first script is called "script1.pl", etc.

    ------ kurt