On Thursday, July 11, 2002, at 12:08 , Carson Wilcox wrote:
> I have a need to source a ksh script from within a perl script. > Does anyone know if this is possible and how to do it. You may need to help us out here - since this sounds like you have a set of variables being assigned in a ksh fashion in a 'file' that would normally be simply 'sourced' into a ksh script with something like . /path/to/file I have an illustration of this behavior at the end. In that illustration, in the main, it is about setting environmental variables - all of which would be accessed in perl in th %ENV... the quick solution then is to have a simple wrapper script that sources all of the env context, and then launches the perl script. If on the other hand, one's ksh script is more towards a 'library' where it has a bunch of defined 'functions' - then your problem can be a bit more complex - and you have a few strategies to look at: a) porting this library to a perl lib, with a nice little parser code that knows how to translate ksh syntax into perl syntax b) build a ksh wrapper that does the sourcing, and based upon command line options invokes the functions in the ksh lib - so that you can call this in any of the standard perl ways of back-tick, system() or open(CALL, "wrapper $arg |") .... so it rather depends upon which you are really trying to solve with which 'sourcing' you are using. esoterica note: I agree with peter on the 'problem' of setting up the ENV stuff in a child - the solution I have always used is to 'contain' the ENV information in a script and then exec script so as to replace the login shell I was originally working in, with an alternative definition - as I did with the ksh scriptology below. ciao drieux --- an illustration of a ksh sourcing play ### #!/bin/ksh ### ### CommonDefFile=${HOME}/etc/drieuxTool.dfn ### ### if [ -f ${CommonDefFile} ] ### then ### . ${CommonDefFile} ### else ### echo "unable to find ${CommonDefFile}" ### exit ### fi ### ### PS="HappyMars > " ### export PS ### ENV=${HOME}/.mars.kshrc ### export ENV ### ### ksh ### ### exit where it specifically grabs: vladimir: 60:] sed 's/^/### /' ${HOME}/.mars.kshrc ### #!/bin/ksh ### ### # ### # the common kornsheel things for a Mars Complex ### # ### ### set -o vi ### alias gobin="cd ${MARS_BIN}" ### alias goconf="cd ${MARS_ETC}" ### alias golog="cd ${MARS_VAR}" ### alias golib="cd ${MARS_LIB}" ### ### alias gotools="cd ${MARS_TOOLS_BIN}" ### ### PS1="HappyMarsLand > " ### ### vladimir: 61:] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]