Madhu Reddy wrote: > Hi, > I want to find out how to pass perl variables > between files and functions... > in C, we declare with "extern" to work in different > files.... how to do in perl... > between files means , i declare variable in file1 and > file2 will update those variables and want to access > in file1 > Ex: like $var1 and $var2 in following example > > between functions means, from main file i need to pass > variables to function.. > that function will update those arguements > like $var3 and var4 in following example > > like in C, we pass the address of variable to > functions > > following is the scenerio... > > File1 : Script1.pl > --------------------- > #!C:\perl\bin\perl -w > require "script2.pl"; > > $var1 = 0; > $var2 = 0; > > # this is a function from another file, this function > #needs to update $var1 and $var2 > my $ret = VAL::Validate(); > > print "var1 is $var1\n"; > print "var2 is $var2\n"; > > > VAL::func1($var3, $var4); > > print "var3 is $var3\n"; > print "var4 is $var4\n"; >
there are many ways to do this in Perl. i would recommend passing a reference to the function and let the function manipulate your variables: #!/usr/bin/perl -w use strict; #-- #-- A_Test.pm #-- package A_Test; use Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw(fun); sub fun{ my $var1 = shift; my $var2 = shift; $$var1 = -1; $$var2 = -2; } 1; __END__ #!/usr/bin/perl -w use strict; use A_Test qw(fun); my $vara = 1; my $varb = 2; print "$vara $varb\n"; fun(\$vara,\$varb); print "$vara $varb\n"; __END__ prints: 1 2 -1 -2 david -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]