in reply to execute perl script frm shell script
My guess is that perl is correct about there not being a file Script1.pl in your directory. Possible causes for this are:
- The current directory is not what you think it is. Print out the current directory before you start perl, maybe by doing cwd; before you launch Perl.
- The file looks like it has the name Script1.pl but really it doesn't. Maybe it is called script1.pl (note the lower-case "s"), or Scriptl.pl (note the letter ell instead of the digit one) or something like that.
But without knowing the setup, it's hard to tell. In my shell scripts, I always ensure that the current working directory is set to something sane by doing:
BASE=$(cd $(dirname $0);pwd)
This sets the shell variable $BASE to the directory where the script resides in. All other executions are then done relative to $BASE - in your case, I would use:
exec perl -w "$BASE/Script1.pl" "$@"
to launch the Perl script - maybe your stanza is better as it will preserve quotes - on my system, I don't have to fight with arguments with embedded whitespace.
In Section
Seekers of Perl Wisdom