+ localize_delete '&x', 2 => HERE;
+ ok !exists(&x), 'localize_delete "&x", anything => HERE [ok]';
+}
+is x(), 1, 'localize_delete "&x", anything => HERE [end]';
+
+{
+ {
+ localize_delete '&nonexistent', 2;
+ is eval('exists &nonexistent'), !1,
+ 'localize_delete "&nonexistent", anything => HERE [ok]';
+ }
+ is eval('exists &nonexistent'), !1,
+ 'localize_delete "&nonexistent", anything => HERE [end]';
+}
+
+{
+ localize_delete *x, sub { } => HERE;
+ is !exists(&x), 1, 'localize_delete *x, anything => HERE [ok 1]';
+ is !defined($x), 1, 'localize_delete *x, anything => HERE [ok 2]';
+}
+is x(), 1, 'localize_delete *x, anything => HERE [end 1]';
+is $x, 1, 'localize_delete *x, anything => HERE [end 2]';
+
+# Invalid
+
+sub invalid_ref { qr/^Invalid \Q$_[0]\E reference as the localization target/ }
+
+{
+ eval { localize_delete \1, 0 => HERE };
+ like $@, invalid_ref('SCALAR'), 'invalid localize_delete \1, 0 => HERE';
+}
+
+{
+ eval { localize_delete [ ], 0 => HERE };
+ like $@, invalid_ref('ARRAY'), 'invalid localize_delete [ ], 0 => HERE';
+}
+
+{
+ eval { localize_delete { }, 0 => HERE };
+ like $@, invalid_ref('HASH'), 'invalid localize_delete { }, 0 => HERE';