サブルーチンに引数を渡す


サブルーチンは引数をすべて無名配列として受け取るため、引数の受け渡しにリファレンスを利用する

配列のみを引数に渡す

sub set_array{
  my @array = @_;
}

my @array = (
  '神奈子',
  '諏訪子',
  '早苗',
);
set_array(@array);

配列とスカラー変数を引数に渡す

sub set_array{
  my ($array, $str) = @_;
  foreach (@{$array}){

  }
}
my @str = '東風谷';
my @array = (
  '神奈子',
  '諏訪子',
  '早苗',
);
set_array(\@array, $str);

2つの配列を引数に渡す

sub set_array{
  my ($array1, $array2) = @_;
  foreach (@{$array1}){

  }
  foreach (@{$array2}){

  }
}
my @array1 = (
  '神奈子',
  '諏訪子',
  '早苗',
);
my @array2 = (
  '紫',
  '藍',
  '橙',
);
set_array(\@array1, \@array2);

連想配列を引数に渡す

sub set_array{
  my (%hash) = @_;
}
my %hash = (
  kanako =>'神奈子',
  suwako =>'諏訪子',
  sanae =>'早苗',
);
set_array(%hash);