in reply to Re: Correct idiom for default parameters
in thread Correct idiom for default parameters

for completeness:

you can even slice lists ...

sub defaults { my ($d1,$d2,$d3) = ( @_ , (1,2,3)[@_ .. 2] ); print("$d1 $d2 $d3\n"); } defaults(); defaults(0); defaults(0, 0); defaults(0, 0, 0);

but I don't like that the maximum index has to be hard coded.

at least this solution doesn't destroy @_ ...

Cheers Rolf