Data(3)

NAME
Gimp::Data - Set and get state data.

SYNOPSIS
  use Gimp::Data;
  $Gimp::Data{'value1'} = "Hello";
  print $Gimp::Data{'value1'},", World!!\n";

DESCRIPTION
With this module, you can access plugin-specific (or global) data in Gimp, i.e. you can store and retrieve values that are stored in the main Gimp application.

An example would be to save parameter values in Gimp, so that on subsequent invocations of your plug-in, the user does not have to set all parameter values again (the Gimp::Fu manpage does this already).

%Gimp::Data
You can store and retrieve anything you like in this hash. It's contents will automatically be stored in Gimp, and can be accessed in later invocations of your plug-in. Be aware that other plug-ins store data in the same "hash", so better prefix your key with something unique, like your plug-in's name. As an example, the Gimp::Fu module uses "function_name/_fu_data" to store its data.

This module might use a persistant implementation, i.e. your data might survive a restart of the Gimp application, but you cannot count on this.

"Gimp::Data" will try to freeze your data when you pass in a reference. On retrieval, the data is thawed again. See the Storable manpage for more info. This might be implemented through either Storable or Data::Dumper, or not implemented at all (i.e. silently fail) ;)

PERSISTANCE
"Gimp::Data" contains the following functions to ease applications where persistence for perl data structures is required:

Gimp::Data::freeze(reference)
    Freeze (serialize) the reference.

Gimp::Data::thaw(data)
    Thaw (unserialize) the dsata and return the original reference.

LIMITATIONS
You cannot store references, and you cannot (yet) iterate through the keys (with "keys", "values" or "each").

AUTHOR
Marc Lehmann <pcg@goof.com>

SEE ALSO
perl(1), the Gimp manpage.