WebService::GData module intends to implement the Google Data protocol and implements some services that use this protocol, like YouTube.

This package is a blueprint that most packages in this module inherit from. It offers a simple hashed based object creation mechanism via the word new.

If you want to pock into the instance, it's easy but everything that is not documented should be considered private. If you play around with undocumented properties/methods and that it changes,upgrading to the new version with all the extra new killer features will be very hard to do.

so...

dont.

As an example, the following classes extend WebService::GData to implement their feature:

This method is called by the constructor new(). This function receives the parameters set in new() and assign the key/values pairs to the instance. You should overwrite it and add your own logic if necessary.

Calls to undefined methods on an instance are catched and dispatch to __get if the call does not contain any parameter or __set if parameters exist. You can overwrite these two methods in your package to meet your naming needs. For example, when you call $instance->dont_exist, you might want to look into $instance->{__DONT_EXIST} instead of the default $instance->{dont_exist}.

This method catches all calls to undefined methods to which no parameters are passed. If you call $instance->unknown_method, the __get method will return $instance->{unknown_method} by default. The __get method gets the instance and the name of the function has parameters.

This method catches all calls to undefined methods to which parameters are passed. If you call $instance->unknown_method($val,$val2), the __set method will set the parameters to $instance->{unknown_method} by default. When several parameters are passed, they are saved as an array reference. The __set method gets the instance,the name of the function and the parameters as its own arguments.

Install in the package the methods/subs specified. Mostly use to avoid writting boiler plate getter/setter methods and a bit more efficient than AUTOLOAD methods as they are installed directly into the package so it will not climb up a function chain call.