use strict; use warnings; use base 'Attribute::Default'; sub f : Default(undef,"xyz") { print("@_\nEND\n"); } f('abc'); # 2nd argument defaults to xyz