> sub foo($a=1, $b, $c=3) { ... } > > is ambiguous: While foo(2) sets $a=1, $b=2, $c=3, it's impossible to > say what foo(4,5) should do.
foo(2) means that $a = 2, $b defaults to undef, $c defaults to 3 foo(4,5) means $a = 4, $b = 5, and $c defaults to 3. -Miko