You could use globals.
my $first; my $second; my $third; sub First { ... } sub Second { ... } sub Third { ... } { $first = First(); $second = Second(); $third = Third(); }
You could use dynamically bound variables.
sub First { ... } sub Second { our $first; ... } sub Third { our $first; our $second; ... } { local our $first = First(); local our $second = Second(); local our $third = Third(); }
A variation on the last one:
our $first; our $second; our $third; sub First { ... } sub Second { ... } sub Third { ... } { local $first = First(); local $second = Second(); local $third = Third(); }
You could use an object:
sub First { ... } sub Second { ... } sub Third { ... } { my $o = ...; $o->First(); $o->Second(); $o->Third(); }
You could use a hash:
sub First { ... } sub Second { ... } sub Third { ... } { my %h; First(\%h); Second(\%h); Third(\%h); }
In your particular case, I'd probably go with "A variation on the last one". It uses global variables, but they get cleared at the end of the curlies in which the local statements are located.
In reply to Re: Getting variables from mulitple subs at once?
by ikegami
in thread Getting variables from mulitple subs at once?
by mdunnbass
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |