> I'm sure someone where will pipe in a better way, but you could pass via a > hash, something like.... > > ($result_code, $error) = submit_changes({ 'apache_request' = >$r, > 'user_name' => \...@user_names, > 'latest_news' => $latest_news_file, 'archived_news' =>$archived_news_file, > 'cgi_obj' =>$q); > > sub submit_changes { > my $hash_ref = @_; > # $hash_ref->{'apache_request'} is $r > # $hash_ref->{'user_name' } is the user arrayref > # $hash_ref->{'archived_news' } may or may not be defined if it was passed > in.. etc. > > } > > -Chris
Almost the same, but with some extra things: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #!/usr/bin/perl use strict; use warnings; sub some { my %params = @_; print $params{p1}."\n"; foreach my $e ( @{$params{p1sub}} ) { print "\t$e\n"; } print "$params{p2}\n"; my $result = {}; $result->{error} = 'foo'; $result->{someother} = 'baar'; # etc return $result; } my $res = {}; $res = some( p1 => 'param1', p1sub => ['param1.1', 'param1.2', 'param1.3'], p2 => 'param2', ); if ($res->{error}) { # ... do something } +++++++++++++++++++++++++++++++++++++++++++++++++++