次のよりエレガントな書き方は何ですか?
sub depend {
my($x,$y) = @_;
die "only one allowed" if( defined($x) && defined($y) );
die "one must be defined" unless ( defined($x) || defined($y) );
if( defined($x) ) {
$y = somefunc($x);
} else {
$x = somefunc($y);
}
return($x,$y);
}
この関数は、引数を 1 つだけ取得する必要があります。両方が定義されている場合 = エラー、定義されていない場合 = エラー。そして、未定義の引数は、定義されたものに基づいて計算されます。