sub foo { my ($var, $val, @therest ) = @_; if ( !$val ) { return; } else { print "var = $var val = $val\n"; foo ( @therest ); } } my @array = (a=>1, b=>2, c=>3 ); foo (@array);