v> I'm trying to run a perl script that is executable; that is, the file v> has "x" permission and starts with this line: v> #!/usr/bin/perl -w v> There's a parameter in this script that's not v> defined by default, for example v> my $foo; # no default v> If foo is not set, the script exits with an error. Normally I would What JD says about the @ARGV array is true, however unless there is a mechanism within the perl script itself to handle external inputs, assign it to $foo, then there's nothing you can do to change it without editing the script. v> just modify the script but this script gets v> extracted from a shell script that has the perl v> script and an rpm embedded in it. (How they did v> that I don't know.) So I would expect there's a v> way to do this, but there were no help files with v> the script. v> The shell script invokes the install file like this: v> ./install_script *$ I assume you mean $* not *$ The way I'm guessing this works is that it uses a here document to drop the perl text to a temporary file and make it executable. $* would be interpreted by the shell as all the arguments you pass to it. For instance if you put echo $* inside a shell script and execute it with arguments you'll get something like this. $ myscript my dog has fleas my dog has fleas Therefore the shell script invoking the perl script would in turn execute ./install_script my dog has fleas or whatever the same arguments are that you invoke the shell script with. Look inside the perl script to see if there anything like $foo = shift if ! $foo; or a line like one of these: use Getopt::Std; use Getopt::Long; getopts("$someoptionstring") or die("$some_errmsg"); my $rv = GetOptions("$someoptionsstring"); If so, then the script knows how to handle input options, which is likely (depending on where you got this and that it works for other people.) I'll assume that it *does* work for others, and that therefore it does *not* simply exit if $foo is unset with no way to set it. my $foo; ... other code that does not deal with $foo ... die( "blech\n" )if ! $foo; simply must exit. v> So I know that I can pass one or more arguments to the outer shell v> script and they will get passed verbatim to the perl script. v> Is there a to pass a value for foo into the script v> without modifying the script? If I understand what you're saying the answer is no. But I have a feeling some information is missing here. -- Lynn David Newton Phoenix, AZ --------------------------------------------------- PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us To subscribe, unsubscribe, or to change your mail settings: http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss