Can you tell me the meaning of the some perl scripts

Hi everyone:

     Can you tell me the meaning of the some perl scripts as followed,

    1." {Run(\\\$doc,\\\$settings,\\\$forciteSettings);}   { sub Run}",I think that firstly run(\\\$doc,\\\$settings,\\\$forciteSettings),and then run sub run,but I don't make sure that;

    2. my (\\\$doc,\\\$settings,\\\$forciteSettings) = @_,"@_"denotes what?

    3. what the meaning of the "Array2Hash" :  my %settings = Array2Hash(\\\$settings);;

    4.what the function of the scripts:

sub Array2Hash

{

# make hash

my (\\\$settings) = @_;

my @array = @\\\$settings;

my %hash;

for(my \\\$i = 0; \\\$i < scalar(@array); \\\$i +=2)

{

  my \\\$key = \\\$array[\\\$i];

  my \\\$value = \\\$array[\\\$i+1];

  \\\$hash{\\\$key} = \\\$value;

}

return %hash;

}

    Thanks for your answers.I want you can tell me the answers in detail.

    yours