I've been exploring the use of:
sample:#!/bin/sh echo "This is shell" SPECIAL_VAR=1 export SPECIAL_VAR eval "exec perl -x -S $(dirname $0)/$(basename $0) ${1+\"\$@\"}" #! -*- perl -*- -w use strict; print "This is Perl\n"; print "ARGV:".join(':',@ARGV)."\n"; print "SPECIAL_VAR: $ENV{SPECIAL_VAR}\n";
as a means of initializing an environment prior to execution of given perl code. The above configuration will preserve quote strings so calls like:
sample -multi "hello there" -single one
Will keep the "hello there" as a single value in ARGV. The dirname/basename combo supports execution from ./ or any other path as dirname will return '.' if the script is called without a path
The intent is to use "source .initenv" in the shell code to load environment initialization code shared across several perl scripts.
In reply to Re: Shebang behavior with perl
by McKreeger
in thread Shebang behavior with perl
by McKreeger
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |