X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdotsh.pl;h=5be2413ae621e4fbdb09531dd523f582a164de62;hb=f4c556ac9d141bf86702c68d95acad2db5ec6874;hp=4db85e742b5d11b9e7c40f3542cd338e22d9d0cd;hpb=a0d0e21ea6ea90a22318550944fe6cb09ae10cda;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/dotsh.pl b/lib/dotsh.pl index 4db85e7..5be2413 100644 --- a/lib/dotsh.pl +++ b/lib/dotsh.pl @@ -1,6 +1,13 @@ # # @(#)dotsh.pl 03/19/94 # +# This library is no longer being maintained, and is included for backward +# compatibility with Perl 4 programs which may require it. +# +# In particular, this should not be used as an example of modern Perl +# programming techniques. +# +# # Author: Charles Collins # # Description: @@ -26,7 +33,9 @@ # sub dotsh { local(@sh) = @_; - local($tmp,$key,$shell,*dotsh,$command,$args,$vars) = ''; + local($tmp,$key,$shell,$command,$args,$vars) = ''; + local(*dotsh); + undef *dotsh; $dotsh = shift(@sh); @dotsh = split (/\s/, $dotsh); $command = shift (@dotsh); @@ -37,7 +46,7 @@ sub dotsh { $shell = "$1 -c" if ($_ =~ /^\#\!\s*(\S+(\/sh|\/ksh|\/zsh|\/csh))\s*$/); close (_SH_ENV); if (!$shell) { - if ($ENV{'SHELL'} =~ /\/sh$|\/ksh$|\/zsh$|\/csh$/) { + if ($ENV{'SHELL'} =~ /\/sh$|\/ksh$|\/zsh$|\/bash$|\/csh$/) { $shell = "$ENV{'SHELL'} -c"; } else { print "SHELL not recognized!\nUsing /bin/sh...\n"; @@ -53,13 +62,13 @@ sub dotsh { open (_SH_ENV, "/tmp/_sh_env$$") || die "Could not open /tmp/_sh_env$$!\n"; while (<_SH_ENV>) { chop; - /=/; - $ENV{$`} = $'; + m/^([^=]*)=(.*)/s; + $ENV{$1} = $2; } close (_SH_ENV); system "rm -f /tmp/_sh_env$$"; - foreach $key (keys(ENV)) { + foreach $key (keys(%ENV)) { $tmp .= "\$$key = \$ENV{'$key'};" if $key =~ /^[A-Za-z]\w*$/; } eval $tmp;