Puppet’s special undef
value is roughly equivalent to nil
in Ruby; it represents the absence of a value. If the strict_variables
setting isn’t enabled, variables which have never been declared have a value of undef
.
The undef
value is usually useful for testing whether a variable has been set. It can also be used as the value of a resource attribute, which can let you un-set any value inherited from a resource default and cause the attribute to be unmanaged.
The only value in the undef data type is the bare word undef
.
When used as a boolean, undef
is false.
When interpolated into a string, undef
will be converted to the empty string.
Undef
data typeThe data type of undef
is Undef
.
It matches only the value undef
, and takes no parameters.
Several of the abstract data types will also match the value undef
:
Data
type matches undef
in addition to several other data types.Any
type matches any value, including undef
.Optional
type wraps one other data type, and returns a type that matches undef
in addition to that type.Variant
type can accept the Undef
type as a parameter, which will make the resulting data type match undef
.NotUndef
type matches any value except undef
.