From: "Zapp" <zapp.pref...@gmail.com> > when I use bash, I can write a file ( a.sh ) like : > abc='abc' > ddd='aaa' > ... > then I can load it in other file: > source a.sh > echo $abc $ddd # it always work! > > but in perl , how can I do like that ? > > I write a file ( my_env.pl ) like: > #!/usr/bin/perl -w > my $abc='abc'; > my $ddd="ddd"; > > and in my.pl : > #!/usr/bin/perl -w > use strict; > > do './my_env.pl' or die '$!\n"; > print $abc $ddd; # and nothing happen > > why? anybody knows? Thanks! > > --
> print $abc $ddd; # and nothing happen Are you sure that nothing happends? It should have given an error like "requires explicit package name " for the variables which are not defined in your script if you use "use strict". And if you use: print $abc $ddd; then the variable $ddd is printed to the file handle $abc. If you want to print more variables, you either should concatenate them using "." like: print $var1 . $var2 . $var3; or print them as a list of vars: print $var1, $var2, $var3; If you define the variable in the current script but you want to assign values for it in another script, you have to use "our" instead of "my", like: our $ddd; do './my_env.pl' or die "$!\n"; print $ddd; And in the called script you should also use "our" if you use "use strict" in it also: our $ddd="ddd"; But usually there are better ways to call a Perl code from a file in another Perl script... Octavian -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/