perlの()

最近Perl勉強しています.楽しいです. 今日の発見なんですが

#!/usr/bin/env perl
use strict;
use warnings;

chomp (my $input = <STDIN>);

sub reject{

    my $number = @_;

    if ($number == 0) {
       $number =1;
    } else {
       $number *= &reject($number-1); 
    }
}

print reject($input) ."\n";

なコードがエラーを吐いて? だったのですが. Perl入学式で質問してみると

いわゆるコンテキストなアレ 問題だったらしい.要素数だけが返されてたのね…

どうもただ ()使っているだけに感じていた

my($foo,$hoo) = @_;($foo,hoo) がリストとして解釈されたから上手く行っていたらしい. なるほど…Perlは奥が深い…