in reply to How to set (environment) variables for the script

I usually use symlinks and a tcsh script like so:
lrwxrwxrwx ... inet_audit -> inet_audit.csh* -rwx------ ... inet_audit.csh* -rwx------ ... inet_audit.pl*
And the contents of inet_audit.csh are below. Note that the $argv:q is used to pass all parameters to the Perl script.
#!/usr/bin/tcsh source /our/etc/perl5101env_script.csh ./inet_audit.pl $argv:q
The main I reason I do it this way is so that users, scripts, desktop environments (KDE and GNOME), etc. do not have to be modified if I want to change which script is used. If there were no environment issues then inet_audit would be symlink to inet_audit.pl. This came about after we converted several .sh and .csh scripts to Perl but had to symlink the original names to the new Perl script. UGH!! This also makes it easier to consolidate scripts, simialr to busybox. Anyway, not going to claim it's perfect.

I do kind of like the exec trick above, but how would I pass parameters in to the Perl script?

Elda Taluta; Sarks Sark; Ark Arks

Replies are listed 'Best First'.
Re^2: How to set (environment) variables for the script
by Skeeve (Parson) on Jun 11, 2010 at 08:21 UTC

    See above for the change. Appending "$@" passes all parameters unchanged to the perl script.


    s$$([},&%#}/&/]+}%&{})*;#$&&s&&$^X.($'^"%]=\&(|?*{%
    +.+=%;.#_}\&"^"-+%*).}%:##%}={~=~:.")&e&&s""`$''`"e