+ is_deeply \%h, { a => 1, b => 2 }, 'localize_elem "%h", "a", 5 => UP [end]';
+}
+
+{
+ {
+ localize_elem '%nonexistent', 'a', 13;
+ is_deeply eval('*nonexistent{HASH}'), { a => 13 },
+ 'localize_elem "%nonexistent", "a", 13 => HERE [ok]';
+ }
+ is_deeply eval('*nonexistent{HASH}'), { },
+ 'localize_elem "%nonexistent", "a", 13 => HERE [end]';
+}
+
+my $invalid_glob = qr/^Can't infer the element localization type from a glob and the value/;
+my $invalid_type = qr/^Can't localize an element of something that isn't an array or a hash/;
+
+{
+ local *x;
+
+ eval { localize_elem '$x', 0, 1 };
+ like $@, $invalid_type, 'invalid localize_elem "$x", 0, 1';
+}
+
+{
+ local *x;
+
+ eval { localize_elem '&x', 0, sub { } };
+ like $@, $invalid_type, 'invalid localize_elem "&x", 0, sub { }';
+}
+
+{
+ local *x;
+
+ eval { localize_elem '*x', 0, \1 };
+ like $@, $invalid_type, 'invalid localize_elem "*x", 0, \1';
+}
+
+{
+ local *x;
+
+ eval { localize_elem *x, 0, \1 };
+ like $@, $invalid_glob, 'invalid localize_elem *x, 0, \1';