Glib::Variant - strongly typed value datatype
Contents
Copyright
Copyright (C) 2003-2011 by the gtk2-perl team.
This software is licensed under the LGPL. See Glib for a full notice.
perl v5.40.0 2024-10-20 Glib::Variant(3pm)
Description
There are two sets of APIs for creating and dealing with "Glib::Variant"s: the low-level API described
below under "METHODS", and the convenience API described in this section.
CONVENIENCEAPI
variant = Glib::Variant->new ($format_string, $value)
(variant1, ...) = Glib::Variant->new ($format_string, $value1, ...)
Constructs a variant from $format_string and $value. Also supports constructing multiple variants
when the format string is a concatenation of multiple types.
value = $variant->get ($format_string)
Deconstructs $variant according to $format_string.
The following symbols are currently supported in format strings:
+------------------------------+---------------------------------+
| Symbol | Meaning |
+------------------------------+---------------------------------+
| b, y, n, q, i, u, x, t, h, d | Boolean, byte and numeric types |
| s, o, g | String types |
| v | Variant types |
| a | Arrays |
| m | Maybe types |
| () | Tuples |
| {} | Dictionary entries |
+------------------------------+---------------------------------+
Note that if a format string specifies an array, a tuple or a dictionary entry ("a", "()" or "{}"), then
array references are expected by "new" and produced by "get". For arrays of dictionary entries ("a{}"),
hash references are also supported by "new" and handled as you would expect.
For a complete specification, see the documentation at
<https://developer.gnome.org/glib/stable/glib-GVariantType.html>
<https://developer.gnome.org/glib/stable/glib-GVariant.html>
<https://developer.gnome.org/glib/stable/gvariant-format-strings.html>
<https://developer.gnome.org/glib/stable/gvariant-text.html>
Hierarchy
Glib::Variant
Methods
variant=Glib::Variant->new_array($child_type,$children)
• $child_type (Glib::VariantType)
• $children (scalar)
variant=Glib::Variant->new_boolean($value)
• $value (boolean)
variant=Glib::Variant->new_byte($value)
• $value (Glib::UChar)
variant=Glib::Variant->new_bytestring($string)
• $string (byte string)
Since: glib 2.26
variant=Glib::Variant->new_dict_entry($key,$value)
• $key (Glib::Variant)
• $value (Glib::Variant)
variant=Glib::Variant->new_double($value)
• $value (double)
variant=Glib::Variant->new_handle($value)
• $value (integer)
variant=Glib::Variant->new_int16($value)
• $value (integer)
variant=Glib::Variant->new_int32($value)
• $value (integer)
variant=Glib::Variant->new_int64($value)
• $value (64 bit integer)
variant=Glib::Variant->new_maybe($child_type,$child)
• $child_type (Glib::VariantType)
• $child (Glib::Variant)
variant=Glib::Variant->new_object_path($object_path)
• $object_path (string)
variant=Glib::Variant->new_signature($signature)
• $signature (string)
variant=Glib::Variant->new_string($string)
• $string (string)
variant=Glib::Variant->new_tuple($children)
• $children (scalar)
variant=Glib::Variant->new_uint16($value)
• $value (unsigned)
variant=Glib::Variant->new_uint32($value)
• $value (unsigned)
variant=Glib::Variant->new_uint64($value)
• $value (64 bit unsigned)
variant=Glib::Variant->new_variant($value)
• $value (Glib::Variant)
boolean=$value->get_booleanuchar=$value->get_bytestring=$value->get_bytestring
Since: glib 2.26
variant=$value->byteswapvariant=$value->get_child_value($index_)
• $index_ (unsigned)
string=$value->classifyinteger=$one->compare($two)
• $two (Glib::Variant)
Since: glib 2.26
double=$value->get_doubleboolean=$one->equal($two)
• $two (Glib::Variant)
integer=$value->get_handleinteger=$value->hashinteger=$value->get_int16integer=$value->get_int3264bitinteger=$value->get_int64boolean=$value->is_containerboolean=$value->is_normal_formboolean=$string->is_object_pathboolean=$value->is_of_type($type)
• $type (Glib::VariantType)
boolean=$string->is_signaturevariant=$dictionary->lookup_value($key,$expected_type)
• $key (string)
• $expected_type (Glib::VariantType)
Since: glib 2.28
variant=$value->get_maybeunsigned=$value->n_childrenvariant=$value->get_normal_formvariant=Glib::Variant::parse($type,$text)
• $type (Glib::VariantType)
• $text (string)
May croak with a Glib::Error in $@ on failure.
string=$value->print($type_annotate)
• $type_annotate (boolean)
unsigned=$value->get_sizestring=$value->get_stringvarianttype=$value->get_typestring=$value->get_type_stringunsigned=$value->get_uint16unsigned=$value->get_uint3264bitunsigned=$value->get_uint64variant=$value->get_variant
Name
Glib::Variant - strongly typed value datatype
See Also
Glib, Glib::VariantType, Glib::VariantDict
Synopsis
my $v = Glib::Variant->new ('as', ['GTK+', 'Perl']);
my $aref = $v->get ('as');
