[glibmm/gmmproc-refactor] Code style fixes in Gir files.



commit 72e00e0e586d4a08631283cb22dbfc2eba725c4d
Author: Krzesimir Nowak <qdlacz gmail com>
Date:   Sat Apr 7 16:14:27 2012 +0200

    Code style fixes in Gir files.
    
    Also, let tag attribute handler take hash instead of array. That
    simplifies common attribute getter code.

 tools/pm/Gir/Api/Alias.pm              |   20 +-
 tools/pm/Gir/Api/Array.pm              |   20 +-
 tools/pm/Gir/Api/Attribute.pm          |   14 +-
 tools/pm/Gir/Api/Bitfield.pm           |   28 +-
 tools/pm/Gir/Api/CInclude.pm           |   12 +-
 tools/pm/Gir/Api/Callback.pm           |   26 +-
 tools/pm/Gir/Api/Class.pm              |   44 +-
 tools/pm/Gir/Api/Common/Base.pm        |   44 +-
 tools/pm/Gir/Api/Constant.pm           |   16 +-
 tools/pm/Gir/Api/Constructor.pm        |   30 +-
 tools/pm/Gir/Api/Doc.pm                |   12 +-
 tools/pm/Gir/Api/Enumeration.pm        |   28 +-
 tools/pm/Gir/Api/Field.pm              |   28 +-
 tools/pm/Gir/Api/Function.pm           |   30 +-
 tools/pm/Gir/Api/GlibBoxed.pm          |   18 +-
 tools/pm/Gir/Api/GlibSignal.pm         |   30 +-
 tools/pm/Gir/Api/Implements.pm         |   12 +-
 tools/pm/Gir/Api/Include.pm            |   14 +-
 tools/pm/Gir/Api/Interface.pm          |   30 +-
 tools/pm/Gir/Api/Member.pm             |   18 +-
 tools/pm/Gir/Api/Method.pm             |   30 +-
 tools/pm/Gir/Api/Namespace.pm          |   20 +-
 tools/pm/Gir/Api/Package.pm            |   12 +-
 tools/pm/Gir/Api/Parameter.pm          |   30 +-
 tools/pm/Gir/Api/Parameters.pm         |   10 +-
 tools/pm/Gir/Api/Prerequisite.pm       |   12 +-
 tools/pm/Gir/Api/Property.pm           |   32 +-
 tools/pm/Gir/Api/Record.pm             |   36 +-
 tools/pm/Gir/Api/Repository.pm         |   18 +-
 tools/pm/Gir/Api/ReturnValue.pm        |   14 +-
 tools/pm/Gir/Api/TopLevel.pm           |   10 +-
 tools/pm/Gir/Api/Type.pm               |   16 +-
 tools/pm/Gir/Api/Union.pm              |   28 +-
 tools/pm/Gir/Api/Varargs.pm            |   10 +-
 tools/pm/Gir/Api/VirtualMethod.pm      |   26 +-
 tools/pm/Gir/Handlers/Alias.pm         |   32 +-
 tools/pm/Gir/Handlers/Array.pm         |   32 +-
 tools/pm/Gir/Handlers/Attribute.pm     |    8 +-
 tools/pm/Gir/Handlers/Bitfield.pm      |   40 +-
 tools/pm/Gir/Handlers/CInclude.pm      |    8 +-
 tools/pm/Gir/Handlers/Callback.pm      |   40 +-
 tools/pm/Gir/Handlers/Class.pm         |  104 ++--
 tools/pm/Gir/Handlers/Common/Base.pm   |    6 +-
 tools/pm/Gir/Handlers/Common/Misc.pm   |  127 +++---
 tools/pm/Gir/Handlers/Common/State.pm  |    8 +-
 tools/pm/Gir/Handlers/Common/Store.pm  |    8 +-
 tools/pm/Gir/Handlers/Common/Tags.pm   |  858 +++++++++++++++-----------------
 tools/pm/Gir/Handlers/Constant.pm      |   32 +-
 tools/pm/Gir/Handlers/Constructor.pm   |   40 +-
 tools/pm/Gir/Handlers/Doc.pm           |    8 +-
 tools/pm/Gir/Handlers/Enumeration.pm   |   40 +-
 tools/pm/Gir/Handlers/Field.pm         |   56 +-
 tools/pm/Gir/Handlers/Function.pm      |   40 +-
 tools/pm/Gir/Handlers/GlibBoxed.pm     |   48 +-
 tools/pm/Gir/Handlers/GlibSignal.pm    |   40 +-
 tools/pm/Gir/Handlers/Implements.pm    |    8 +-
 tools/pm/Gir/Handlers/Include.pm       |    8 +-
 tools/pm/Gir/Handlers/Interface.pm     |   96 ++--
 tools/pm/Gir/Handlers/Member.pm        |    8 +-
 tools/pm/Gir/Handlers/Method.pm        |   40 +-
 tools/pm/Gir/Handlers/Namespace.pm     |   96 ++--
 tools/pm/Gir/Handlers/Package.pm       |    8 +-
 tools/pm/Gir/Handlers/Parameter.pm     |   48 +-
 tools/pm/Gir/Handlers/Parameters.pm    |   16 +-
 tools/pm/Gir/Handlers/Prerequisite.pm  |    8 +-
 tools/pm/Gir/Handlers/Property.pm      |   48 +-
 tools/pm/Gir/Handlers/Record.pm        |   72 ++--
 tools/pm/Gir/Handlers/Repository.pm    |   40 +-
 tools/pm/Gir/Handlers/ReturnValue.pm   |   48 +-
 tools/pm/Gir/Handlers/TopLevel.pm      |   16 +-
 tools/pm/Gir/Handlers/Type.pm          |   32 +-
 tools/pm/Gir/Handlers/Union.pm         |   72 ++--
 tools/pm/Gir/Handlers/Varargs.pm       |    8 +-
 tools/pm/Gir/Handlers/VirtualMethod.pm |   40 +-
 tools/pm/Gir/Parser.pm                 |   33 +-
 tools/pm/Gir/Repositories.pm           |    4 +-
 tools/pm/Gir/State.pm                  |   10 +-
 tools/pm/taghandlerwriter.pl           |  176 ++++----
 78 files changed, 1614 insertions(+), 1674 deletions(-)
---
diff --git a/tools/pm/Gir/Api/Alias.pm b/tools/pm/Gir/Api/Alias.pm
index 59e8b79..5a0230b 100644
--- a/tools/pm/Gir/Api/Alias.pm
+++ b/tools/pm/Gir/Api/Alias.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Alias;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -31,7 +31,7 @@ use Gir::Api::Type;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Alias');
+  my $class = (ref $type or $type or 'Gir::Api::Alias');
   my $groups =
   [
     'group_attribute',
@@ -48,20 +48,20 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Alias::new ($type);
+  my $self = Gir::Api::Alias::new $type;
 
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Array.pm b/tools/pm/Gir/Api/Array.pm
index 2af0b78..31bf0a5 100644
--- a/tools/pm/Gir/Api/Array.pm
+++ b/tools/pm/Gir/Api/Array.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Array;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Type;
@@ -31,7 +31,7 @@ use Gir::Api::Varargs;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Array');
+  my $class = (ref $type or $type or 'Gir::Api::Array');
   my $groups =
   [
     'group_array',
@@ -48,20 +48,20 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Array::new ($type);
+  my $self = Gir::Api::Array::new $type;
 
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_fixed_size($params->{'fixed-size'});
-  $self->set_a_length($params->{'length'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_zero_terminated($params->{'zero-terminated'});
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_fixed_size ($params->{'fixed-size'});
+  $self->set_a_length ($params->{'length'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_zero_terminated ($params->{'zero-terminated'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Attribute.pm b/tools/pm/Gir/Api/Attribute.pm
index 9a3330c..6a22104 100644
--- a/tools/pm/Gir/Api/Attribute.pm
+++ b/tools/pm/Gir/Api/Attribute.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::Attribute;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Attribute');
+  my $class = (ref $type or $type or 'Gir::Api::Attribute');
   my $groups =
   [
 
@@ -41,17 +41,17 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Attribute::new ($type);
+  my $self = Gir::Api::Attribute::new $type;
 
-  $self->set_a_name($params->{'name'});
-  $self->set_a_value($params->{'value'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_value ($params->{'value'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Bitfield.pm b/tools/pm/Gir/Api/Bitfield.pm
index f1e1396..d272577 100644
--- a/tools/pm/Gir/Api/Bitfield.pm
+++ b/tools/pm/Gir/Api/Bitfield.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Bitfield;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -32,7 +32,7 @@ use Gir::Api::Member;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Bitfield');
+  my $class = (ref $type or $type or 'Gir::Api::Bitfield');
   my $groups =
   [
     'group_attribute',
@@ -53,23 +53,23 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Bitfield::new ($type);
-
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_glib_get_type($params->{'glib:get-type'});
-  $self->set_a_glib_type_name($params->{'glib:type-name'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Bitfield::new $type;
+
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_glib_get_type ($params->{'glib:get-type'});
+  $self->set_a_glib_type_name ($params->{'glib:type-name'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/CInclude.pm b/tools/pm/Gir/Api/CInclude.pm
index c92ad2a..3ca1aab 100644
--- a/tools/pm/Gir/Api/CInclude.pm
+++ b/tools/pm/Gir/Api/CInclude.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::CInclude;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::CInclude');
+  my $class = (ref $type or $type or 'Gir::Api::CInclude');
   my $groups =
   [
 
@@ -40,16 +40,16 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::CInclude::new ($type);
+  my $self = Gir::Api::CInclude::new $type;
 
-  $self->set_a_name($params->{'name'});
+  $self->set_a_name ($params->{'name'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Callback.pm b/tools/pm/Gir/Api/Callback.pm
index 1dc2a55..8e14f88 100644
--- a/tools/pm/Gir/Api/Callback.pm
+++ b/tools/pm/Gir/Api/Callback.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Callback;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -32,7 +32,7 @@ use Gir::Api::ReturnValue;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Callback');
+  my $class = (ref $type or $type or 'Gir::Api::Callback');
   my $groups =
   [
     'group_attribute',
@@ -52,22 +52,22 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Callback::new ($type);
-
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_throws($params->{'throws'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Callback::new $type;
+
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_throws ($params->{'throws'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Class.pm b/tools/pm/Gir/Api/Class.pm
index b2ef54d..e88f82d 100644
--- a/tools/pm/Gir/Api/Class.pm
+++ b/tools/pm/Gir/Api/Class.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Class;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Constructor;
@@ -40,7 +40,7 @@ use Gir::Api::VirtualMethod;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Class');
+  my $class = (ref $type or $type or 'Gir::Api::Class');
   my $groups =
   [
     'group_attribute',
@@ -78,32 +78,32 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Class::new ($type);
-
-  $self->set_a_abstract($params->{'abstract'});
-  $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_glib_fundamental($params->{'glib:fundamental'});
-  $self->set_a_glib_get_type($params->{'glib:get-type'});
-  $self->set_a_glib_get_value_func($params->{'glib:get-value-func'});
-  $self->set_a_glib_ref_func($params->{'glib:ref-func'});
-  $self->set_a_glib_set_value_func($params->{'glib:set-value-func'});
-  $self->set_a_glib_type_name($params->{'glib:type-name'});
-  $self->set_a_glib_type_struct($params->{'glib:type-struct'});
-  $self->set_a_glib_unref_func($params->{'glib:unref-func'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_parent($params->{'parent'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Class::new $type;
+
+  $self->set_a_abstract ($params->{'abstract'});
+  $self->set_a_c_symbol_prefix ($params->{'c:symbol-prefix'});
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_glib_fundamental ($params->{'glib:fundamental'});
+  $self->set_a_glib_get_type ($params->{'glib:get-type'});
+  $self->set_a_glib_get_value_func ($params->{'glib:get-value-func'});
+  $self->set_a_glib_ref_func ($params->{'glib:ref-func'});
+  $self->set_a_glib_set_value_func ($params->{'glib:set-value-func'});
+  $self->set_a_glib_type_name ($params->{'glib:type-name'});
+  $self->set_a_glib_type_struct ($params->{'glib:type-struct'});
+  $self->set_a_glib_unref_func ($params->{'glib:unref-func'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_parent ($params->{'parent'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Common/Base.pm b/tools/pm/Gir/Api/Common/Base.pm
index 8e42123..0275eed 100644
--- a/tools/pm/Gir/Api/Common/Base.pm
+++ b/tools/pm/Gir/Api/Common/Base.pm
@@ -35,9 +35,9 @@ sub _get_group_member_by_name ($$$)
   my ($self, $group_name, $member_name) = @_;
   my $groups = $self->{'groups'};
 
-  unless (exists ($groups->{$group_name}))
+  unless (exists $groups->{$group_name})
   {
-    # TODO: throw error.
+# TODO: throw error.
     print STDERR 'No such group: ' . $group_name . '.' . "\n";
     exit 1;
   }
@@ -45,7 +45,7 @@ sub _get_group_member_by_name ($$$)
   my $group = $groups->{$group_name};
   my $unordered = $group->{'unordered'};
 
-  if (exists ($unordered->{$member_name}))
+  if (exists $unordered->{$member_name})
   {
     return $group->{'ordered'}[$unordered->{$member_name}];
   }
@@ -56,16 +56,16 @@ sub _get_group_member_by_name ($$$)
 ## Takes group name and index of a member and tries to retrieve a member
 ## at given index from a group. Note that asking for a member of nonexistent
 ## group or noexistent index is fatal. This method always returns a valid
-## member.
+## member otherwise.
 ##
 sub _get_group_member_by_index ($$$)
 {
   my ($self, $group_name, $index) = @_;
   my $groups = $self->{'groups'};
 
-  unless (exists ($groups->{$group_name}))
+  unless (exists $groups->{$group_name})
   {
-    # TODO: throw error.
+# TODO: throw error.
     print STDERR 'No such group: ' . $group_name .  '.' . "\n";
     exit 1;
   }
@@ -75,7 +75,7 @@ sub _get_group_member_by_index ($$$)
 
   unless ($index < @{$ordered})
   {
-    # TODO: throw error.
+# TODO: throw error.
     print STDERR 'No member under index ' . $index . ' in group ' . $group_name . '.' . "\n";
     exit 1;
   }
@@ -85,16 +85,16 @@ sub _get_group_member_by_index ($$$)
 ##
 ## Takes group name and returns a count of members in the group. Note that asking
 ## for a count of nonexistent group is fatal. This method always return a correct
-## count.
+## count otherwise.
 ##
 sub _get_group_member_count ($$)
 {
   my ($self, $group_name) = @_;
   my $groups = $self->{'groups'};
 
-  unless (exists ($groups->{$group_name}))
+  unless (exists $groups->{$group_name})
   {
-    # TODO: throw error.
+# TODO: throw error.
     print STDERR 'No such group: ' . $group_name . '.' . "\n";
     exit 1;
   }
@@ -112,9 +112,9 @@ sub _add_member_to_group ($$$$)
   my ($self, $group_name, $member_name, $member) = @_;
   my $groups = $self->{'groups'};
 
-  unless (exists ($groups->{$group_name}))
+  unless (exists $groups->{$group_name})
   {
-    # TODO: throw error.
+# TODO: throw error.
     print STDERR 'No such group: ' . $group_name . '.' . "\n";
     exit 1;
   }
@@ -122,9 +122,9 @@ sub _add_member_to_group ($$$$)
   my $group = $groups->{$group_name};
   my $unordered = $group->{'unordered'};
 
-  if (exists ($unordered->{$member_name}))
+  if (exists $unordered->{$member_name})
   {
-    # TODO: throw error.
+# TODO: throw error.
     print STDERR 'Member ' . $member_name . ' already exists in group: ' . $group_name . '.' . "\n";
     exit 1;
   }
@@ -132,7 +132,7 @@ sub _add_member_to_group ($$$$)
   my $ordered = $group->{'ordered'};
   my $new_index = @{$ordered};
 
-  push (@{$ordered}, $member);
+  push @{$ordered}, $member;
   $unordered->{$member_name} = $new_index;
 }
 
@@ -145,9 +145,9 @@ sub _get_attribute ($$)
   my ($self, $attribute_name) = @_;
   my $attributes = $self->{'attributes'};
 
-  unless (exists ($attributes->{$attribute_name}))
+  unless (exists $attributes->{$attribute_name})
   {
-    # TODO: throw error.
+# TODO: throw error.
     print STDERR 'No such attribute: ' . $attribute_name . '.' . "\n";
     exit 1;
   }
@@ -164,9 +164,9 @@ sub _set_attribute ($$$)
   my ($self, $attribute_name, $attribute_value) = @_;
   my $attributes = $self->{'attributes'};
 
-  unless (exists ($attributes->{$attribute_name}))
+  unless (exists $attributes->{$attribute_name})
   {
-    # TODO: throw error.
+# TODO: throw error.
     print STDERR 'No such attribute: ' . $attribute_name . '.' . "\n";
     exit 1;
   }
@@ -182,7 +182,7 @@ sub _has_attribute ($$)
   my ($self, $attribute_name) = @_;
   my $attributes = $self->{'attributes'};
 
-  return exists ($attributes->{$attribute_name});
+  return exists $attributes->{$attribute_name};
 }
 
 ##
@@ -197,7 +197,7 @@ sub _has_attribute ($$)
 sub new ($$$)
 {
   my ($type, $groups, $attributes) = @_;
-  my $class = (ref ($type) or $type or 'Gir::Api::Common::Base');
+  my $class = (ref $type or $type or 'Gir::Api::Common::Base');
   my %member_groups = map { $_ => {'ordered' => [], 'unordered' => {}}; } @{$groups};
   my %member_attributes = map { $_ => undef } @{$attributes};
   my $self =
@@ -208,7 +208,7 @@ sub new ($$$)
     'attributes' => \%member_attributes
   };
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
diff --git a/tools/pm/Gir/Api/Constant.pm b/tools/pm/Gir/Api/Constant.pm
index f005136..12c4ed5 100644
--- a/tools/pm/Gir/Api/Constant.pm
+++ b/tools/pm/Gir/Api/Constant.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Constant;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Type;
@@ -31,7 +31,7 @@ use Gir::Api::Varargs;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Constant');
+  my $class = (ref $type or $type or 'Gir::Api::Constant');
   my $groups =
   [
     'group_array',
@@ -46,18 +46,18 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Constant::new ($type);
+  my $self = Gir::Api::Constant::new $type;
 
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_value($params->{'value'});
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_value ($params->{'value'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Constructor.pm b/tools/pm/Gir/Api/Constructor.pm
index e7b89db..688207d 100644
--- a/tools/pm/Gir/Api/Constructor.pm
+++ b/tools/pm/Gir/Api/Constructor.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Constructor;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -32,7 +32,7 @@ use Gir::Api::ReturnValue;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Constructor');
+  my $class = (ref $type or $type or 'Gir::Api::Constructor');
   my $groups =
   [
     'group_attribute',
@@ -55,25 +55,25 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Constructor::new ($type);
-
-  $self->set_a_c_identifier($params->{'c:identifier'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_moved_to($params->{'moved-to'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_shadowed_by($params->{'shadowed-by'});
-  $self->set_a_shadows($params->{'shadows'});
-  $self->set_a_throws($params->{'throws'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Constructor::new $type;
+
+  $self->set_a_c_identifier ($params->{'c:identifier'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_moved_to ($params->{'moved-to'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_shadowed_by ($params->{'shadowed-by'});
+  $self->set_a_shadows ($params->{'shadows'});
+  $self->set_a_throws ($params->{'throws'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Doc.pm b/tools/pm/Gir/Api/Doc.pm
index 62fd864..d214e50 100644
--- a/tools/pm/Gir/Api/Doc.pm
+++ b/tools/pm/Gir/Api/Doc.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::Doc;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Doc');
+  my $class = (ref $type or $type or 'Gir::Api::Doc');
   my $groups =
   [
 
@@ -40,16 +40,16 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Doc::new ($type);
+  my $self = Gir::Api::Doc::new $type;
 
-  $self->set_a_xml_whitespace($params->{'xml:whitespace'});
+  $self->set_a_xml_whitespace ($params->{'xml:whitespace'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Enumeration.pm b/tools/pm/Gir/Api/Enumeration.pm
index efd94ec..07b28df 100644
--- a/tools/pm/Gir/Api/Enumeration.pm
+++ b/tools/pm/Gir/Api/Enumeration.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Enumeration;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -32,7 +32,7 @@ use Gir::Api::Member;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Enumeration');
+  my $class = (ref $type or $type or 'Gir::Api::Enumeration');
   my $groups =
   [
     'group_attribute',
@@ -54,24 +54,24 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Enumeration::new ($type);
-
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_glib_error_domain($params->{'glib:error-domain'});
-  $self->set_a_glib_get_type($params->{'glib:get-type'});
-  $self->set_a_glib_type_name($params->{'glib:type-name'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Enumeration::new $type;
+
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_glib_error_domain ($params->{'glib:error-domain'});
+  $self->set_a_glib_get_type ($params->{'glib:get-type'});
+  $self->set_a_glib_type_name ($params->{'glib:type-name'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Field.pm b/tools/pm/Gir/Api/Field.pm
index b24144f..149e446 100644
--- a/tools/pm/Gir/Api/Field.pm
+++ b/tools/pm/Gir/Api/Field.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Field;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Attribute;
@@ -34,7 +34,7 @@ use Gir::Api::Varargs;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Field');
+  my $class = (ref $type or $type or 'Gir::Api::Field');
   my $groups =
   [
     'group_array',
@@ -57,23 +57,23 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Field::new ($type);
-
-  $self->set_a_bits($params->{'bits'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_private($params->{'private'});
-  $self->set_a_readable($params->{'readable'});
-  $self->set_a_writable($params->{'writable'});
+  my $self = Gir::Api::Field::new $type;
+
+  $self->set_a_bits ($params->{'bits'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_private ($params->{'private'});
+  $self->set_a_readable ($params->{'readable'});
+  $self->set_a_writable ($params->{'writable'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Function.pm b/tools/pm/Gir/Api/Function.pm
index 5fe8e30..5b21af9 100644
--- a/tools/pm/Gir/Api/Function.pm
+++ b/tools/pm/Gir/Api/Function.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Function;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -32,7 +32,7 @@ use Gir::Api::ReturnValue;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Function');
+  my $class = (ref $type or $type or 'Gir::Api::Function');
   my $groups =
   [
     'group_attribute',
@@ -55,25 +55,25 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Function::new ($type);
-
-  $self->set_a_c_identifier($params->{'c:identifier'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_moved_to($params->{'moved-to'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_shadowed_by($params->{'shadowed-by'});
-  $self->set_a_shadows($params->{'shadows'});
-  $self->set_a_throws($params->{'throws'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Function::new $type;
+
+  $self->set_a_c_identifier ($params->{'c:identifier'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_moved_to ($params->{'moved-to'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_shadowed_by ($params->{'shadowed-by'});
+  $self->set_a_shadows ($params->{'shadows'});
+  $self->set_a_throws ($params->{'throws'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/GlibBoxed.pm b/tools/pm/Gir/Api/GlibBoxed.pm
index e24a36b..736a325 100644
--- a/tools/pm/Gir/Api/GlibBoxed.pm
+++ b/tools/pm/Gir/Api/GlibBoxed.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::GlibBoxed;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Constructor;
@@ -33,7 +33,7 @@ use Gir::Api::Method;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::GlibBoxed');
+  my $class = (ref $type or $type or 'Gir::Api::GlibBoxed');
   my $groups =
   [
     'group_attribute',
@@ -51,19 +51,19 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::GlibBoxed::new ($type);
+  my $self = Gir::Api::GlibBoxed::new $type;
 
-  $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
-  $self->set_a_glib_get_type($params->{'glib:get-type'});
-  $self->set_a_glib_name($params->{'glib:name'});
-  $self->set_a_glib_type_name($params->{'glib:type-name'});
+  $self->set_a_c_symbol_prefix ($params->{'c:symbol-prefix'});
+  $self->set_a_glib_get_type ($params->{'glib:get-type'});
+  $self->set_a_glib_name ($params->{'glib:name'});
+  $self->set_a_glib_type_name ($params->{'glib:type-name'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/GlibSignal.pm b/tools/pm/Gir/Api/GlibSignal.pm
index 37c5291..333158f 100644
--- a/tools/pm/Gir/Api/GlibSignal.pm
+++ b/tools/pm/Gir/Api/GlibSignal.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::GlibSignal;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -32,7 +32,7 @@ use Gir::Api::ReturnValue;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::GlibSignal');
+  my $class = (ref $type or $type or 'Gir::Api::GlibSignal');
   my $groups =
   [
     'group_attribute',
@@ -55,25 +55,25 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::GlibSignal::new ($type);
-
-  $self->set_a_action($params->{'action'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_detailed($params->{'detailed'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_no_hooks($params->{'no-hooks'});
-  $self->set_a_no_recurse($params->{'no-recurse'});
-  $self->set_a_version($params->{'version'});
-  $self->set_a_when($params->{'when'});
+  my $self = Gir::Api::GlibSignal::new $type;
+
+  $self->set_a_action ($params->{'action'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_detailed ($params->{'detailed'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_no_hooks ($params->{'no-hooks'});
+  $self->set_a_no_recurse ($params->{'no-recurse'});
+  $self->set_a_version ($params->{'version'});
+  $self->set_a_when ($params->{'when'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Implements.pm b/tools/pm/Gir/Api/Implements.pm
index f5ff30d..ac80b5c 100644
--- a/tools/pm/Gir/Api/Implements.pm
+++ b/tools/pm/Gir/Api/Implements.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::Implements;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Implements');
+  my $class = (ref $type or $type or 'Gir::Api::Implements');
   my $groups =
   [
 
@@ -40,16 +40,16 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Implements::new ($type);
+  my $self = Gir::Api::Implements::new $type;
 
-  $self->set_a_name($params->{'name'});
+  $self->set_a_name ($params->{'name'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Include.pm b/tools/pm/Gir/Api/Include.pm
index e9181a1..cc4dadd 100644
--- a/tools/pm/Gir/Api/Include.pm
+++ b/tools/pm/Gir/Api/Include.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::Include;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Include');
+  my $class = (ref $type or $type or 'Gir::Api::Include');
   my $groups =
   [
 
@@ -41,17 +41,17 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Include::new ($type);
+  my $self = Gir::Api::Include::new $type;
 
-  $self->set_a_name($params->{'name'});
-  $self->set_a_version($params->{'version'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Interface.pm b/tools/pm/Gir/Api/Interface.pm
index 2e5e86e..6c66706 100644
--- a/tools/pm/Gir/Api/Interface.pm
+++ b/tools/pm/Gir/Api/Interface.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Interface;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -39,7 +39,7 @@ use Gir::Api::VirtualMethod;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Interface');
+  my $class = (ref $type or $type or 'Gir::Api::Interface');
   my $groups =
   [
     'group_attribute',
@@ -69,25 +69,25 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Interface::new ($type);
-
-  $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_glib_get_type($params->{'glib:get-type'});
-  $self->set_a_glib_type_name($params->{'glib:type-name'});
-  $self->set_a_glib_type_struct($params->{'glib:type-struct'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Interface::new $type;
+
+  $self->set_a_c_symbol_prefix ($params->{'c:symbol-prefix'});
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_glib_get_type ($params->{'glib:get-type'});
+  $self->set_a_glib_type_name ($params->{'glib:type-name'});
+  $self->set_a_glib_type_struct ($params->{'glib:type-struct'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Member.pm b/tools/pm/Gir/Api/Member.pm
index 3810925..c2e3d74 100644
--- a/tools/pm/Gir/Api/Member.pm
+++ b/tools/pm/Gir/Api/Member.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::Member;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Member');
+  my $class = (ref $type or $type or 'Gir::Api::Member');
   my $groups =
   [
 
@@ -43,19 +43,19 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Member::new ($type);
+  my $self = Gir::Api::Member::new $type;
 
-  $self->set_a_c_identifier($params->{'c:identifier'});
-  $self->set_a_glib_nick($params->{'glib:nick'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_value($params->{'value'});
+  $self->set_a_c_identifier ($params->{'c:identifier'});
+  $self->set_a_glib_nick ($params->{'glib:nick'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_value ($params->{'value'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Method.pm b/tools/pm/Gir/Api/Method.pm
index 4130a02..1ec9f55 100644
--- a/tools/pm/Gir/Api/Method.pm
+++ b/tools/pm/Gir/Api/Method.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Method;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -32,7 +32,7 @@ use Gir::Api::ReturnValue;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Method');
+  my $class = (ref $type or $type or 'Gir::Api::Method');
   my $groups =
   [
     'group_attribute',
@@ -55,25 +55,25 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Method::new ($type);
-
-  $self->set_a_c_identifier($params->{'c:identifier'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_moved_to($params->{'moved-to'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_shadowed_by($params->{'shadowed-by'});
-  $self->set_a_shadows($params->{'shadows'});
-  $self->set_a_throws($params->{'throws'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Method::new $type;
+
+  $self->set_a_c_identifier ($params->{'c:identifier'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_moved_to ($params->{'moved-to'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_shadowed_by ($params->{'shadowed-by'});
+  $self->set_a_shadows ($params->{'shadows'});
+  $self->set_a_throws ($params->{'throws'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Namespace.pm b/tools/pm/Gir/Api/Namespace.pm
index cedac4d..59400af 100644
--- a/tools/pm/Gir/Api/Namespace.pm
+++ b/tools/pm/Gir/Api/Namespace.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Namespace;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Alias;
 use Gir::Api::Bitfield;
@@ -39,7 +39,7 @@ use Gir::Api::Union;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Namespace');
+  my $class = (ref $type or $type or 'Gir::Api::Namespace');
   my $groups =
   [
     'group_alias',
@@ -64,20 +64,20 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Namespace::new ($type);
+  my $self = Gir::Api::Namespace::new $type;
 
-  $self->set_a_c_identifier_prefixes($params->{'c:identifier-prefixes'});
-  $self->set_a_c_symbol_prefixes($params->{'c:symbol-prefixes'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_shared_library($params->{'shared-library'});
-  $self->set_a_version($params->{'version'});
+  $self->set_a_c_identifier_prefixes ($params->{'c:identifier-prefixes'});
+  $self->set_a_c_symbol_prefixes ($params->{'c:symbol-prefixes'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_shared_library ($params->{'shared-library'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Package.pm b/tools/pm/Gir/Api/Package.pm
index d50550d..d357d94 100644
--- a/tools/pm/Gir/Api/Package.pm
+++ b/tools/pm/Gir/Api/Package.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::Package;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Package');
+  my $class = (ref $type or $type or 'Gir::Api::Package');
   my $groups =
   [
 
@@ -40,16 +40,16 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Package::new ($type);
+  my $self = Gir::Api::Package::new $type;
 
-  $self->set_a_name($params->{'name'});
+  $self->set_a_name ($params->{'name'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Parameter.pm b/tools/pm/Gir/Api/Parameter.pm
index edc72da..2849a95 100644
--- a/tools/pm/Gir/Api/Parameter.pm
+++ b/tools/pm/Gir/Api/Parameter.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Parameter;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Attribute;
@@ -33,7 +33,7 @@ use Gir::Api::Varargs;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Parameter');
+  my $class = (ref $type or $type or 'Gir::Api::Parameter');
   my $groups =
   [
     'group_array',
@@ -56,24 +56,24 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Parameter::new ($type);
-
-  $self->set_a_allow_none($params->{'allow-none'});
-  $self->set_a_caller_allocates($params->{'caller-allocates'});
-  $self->set_a_closure($params->{'closure'});
-  $self->set_a_destroy($params->{'destroy'});
-  $self->set_a_direction($params->{'direction'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_scope($params->{'scope'});
-  $self->set_a_skip($params->{'skip'});
-  $self->set_a_transfer_ownership($params->{'transfer-ownership'});
+  my $self = Gir::Api::Parameter::new $type;
+
+  $self->set_a_allow_none ($params->{'allow-none'});
+  $self->set_a_caller_allocates ($params->{'caller-allocates'});
+  $self->set_a_closure ($params->{'closure'});
+  $self->set_a_destroy ($params->{'destroy'});
+  $self->set_a_direction ($params->{'direction'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_scope ($params->{'scope'});
+  $self->set_a_skip ($params->{'skip'});
+  $self->set_a_transfer_ownership ($params->{'transfer-ownership'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Parameters.pm b/tools/pm/Gir/Api/Parameters.pm
index 344059d..3bc0a57 100644
--- a/tools/pm/Gir/Api/Parameters.pm
+++ b/tools/pm/Gir/Api/Parameters.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::Parameters;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Parameter;
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Parameters');
+  my $class = (ref $type or $type or 'Gir::Api::Parameters');
   my $groups =
   [
     'group_parameter'
@@ -40,14 +40,14 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Parameters::new ($type);
+  my $self = Gir::Api::Parameters::new $type;
 
 
 
diff --git a/tools/pm/Gir/Api/Prerequisite.pm b/tools/pm/Gir/Api/Prerequisite.pm
index c784b97..c7c30eb 100644
--- a/tools/pm/Gir/Api/Prerequisite.pm
+++ b/tools/pm/Gir/Api/Prerequisite.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::Prerequisite;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Prerequisite');
+  my $class = (ref $type or $type or 'Gir::Api::Prerequisite');
   my $groups =
   [
 
@@ -40,16 +40,16 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Prerequisite::new ($type);
+  my $self = Gir::Api::Prerequisite::new $type;
 
-  $self->set_a_name($params->{'name'});
+  $self->set_a_name ($params->{'name'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Property.pm b/tools/pm/Gir/Api/Property.pm
index 0085534..f2f3217 100644
--- a/tools/pm/Gir/Api/Property.pm
+++ b/tools/pm/Gir/Api/Property.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Property;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Attribute;
@@ -33,7 +33,7 @@ use Gir::Api::Varargs;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Property');
+  my $class = (ref $type or $type or 'Gir::Api::Property');
   my $groups =
   [
     'group_array',
@@ -57,25 +57,25 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Property::new ($type);
-
-  $self->set_a_construct($params->{'construct'});
-  $self->set_a_construct_only($params->{'construct-only'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_readable($params->{'readable'});
-  $self->set_a_transfer_ownership($params->{'transfer-ownership'});
-  $self->set_a_version($params->{'version'});
-  $self->set_a_writable($params->{'writable'});
+  my $self = Gir::Api::Property::new $type;
+
+  $self->set_a_construct ($params->{'construct'});
+  $self->set_a_construct_only ($params->{'construct-only'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_readable ($params->{'readable'});
+  $self->set_a_transfer_ownership ($params->{'transfer-ownership'});
+  $self->set_a_version ($params->{'version'});
+  $self->set_a_writable ($params->{'writable'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Record.pm b/tools/pm/Gir/Api/Record.pm
index dcefbf2..8f7c26b 100644
--- a/tools/pm/Gir/Api/Record.pm
+++ b/tools/pm/Gir/Api/Record.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Record;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Constructor;
@@ -36,7 +36,7 @@ use Gir::Api::Union;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Record');
+  my $class = (ref $type or $type or 'Gir::Api::Record');
   my $groups =
   [
     'group_attribute',
@@ -65,27 +65,27 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Record::new ($type);
-
-  $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_disguised($params->{'disguised'});
-  $self->set_a_foreign($params->{'foreign'});
-  $self->set_a_glib_get_type($params->{'glib:get-type'});
-  $self->set_a_glib_is_gtype_struct_for($params->{'glib:is-gtype-struct-for'});
-  $self->set_a_glib_type_name($params->{'glib:type-name'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Record::new $type;
+
+  $self->set_a_c_symbol_prefix ($params->{'c:symbol-prefix'});
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_disguised ($params->{'disguised'});
+  $self->set_a_foreign ($params->{'foreign'});
+  $self->set_a_glib_get_type ($params->{'glib:get-type'});
+  $self->set_a_glib_is_gtype_struct_for ($params->{'glib:is-gtype-struct-for'});
+  $self->set_a_glib_type_name ($params->{'glib:type-name'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Repository.pm b/tools/pm/Gir/Api/Repository.pm
index 2ca392d..d6f756b 100644
--- a/tools/pm/Gir/Api/Repository.pm
+++ b/tools/pm/Gir/Api/Repository.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Repository;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::CInclude;
 use Gir::Api::Include;
@@ -32,7 +32,7 @@ use Gir::Api::Package;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Repository');
+  my $class = (ref $type or $type or 'Gir::Api::Repository');
   my $groups =
   [
     'group_c_include',
@@ -49,19 +49,19 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Repository::new ($type);
+  my $self = Gir::Api::Repository::new $type;
 
-  $self->set_a_version($params->{'version'});
-  $self->set_a_xmlns($params->{'xmlns'});
-  $self->set_a_xmlns_c($params->{'xmlns:c'});
-  $self->set_a_xmlns_glib($params->{'xmlns:glib'});
+  $self->set_a_version ($params->{'version'});
+  $self->set_a_xmlns ($params->{'xmlns'});
+  $self->set_a_xmlns_c ($params->{'xmlns:c'});
+  $self->set_a_xmlns_glib ($params->{'xmlns:glib'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/ReturnValue.pm b/tools/pm/Gir/Api/ReturnValue.pm
index a956f47..4c08541 100644
--- a/tools/pm/Gir/Api/ReturnValue.pm
+++ b/tools/pm/Gir/Api/ReturnValue.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::ReturnValue;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Attribute;
@@ -33,7 +33,7 @@ use Gir::Api::Varargs;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::ReturnValue');
+  my $class = (ref $type or $type or 'Gir::Api::ReturnValue');
   my $groups =
   [
     'group_array',
@@ -49,17 +49,17 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::ReturnValue::new ($type);
+  my $self = Gir::Api::ReturnValue::new $type;
 
-  $self->set_a_skip($params->{'skip'});
-  $self->set_a_transfer_ownership($params->{'transfer-ownership'});
+  $self->set_a_skip ($params->{'skip'});
+  $self->set_a_transfer_ownership ($params->{'transfer-ownership'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/TopLevel.pm b/tools/pm/Gir/Api/TopLevel.pm
index 05b2031..2db5c35 100644
--- a/tools/pm/Gir/Api/TopLevel.pm
+++ b/tools/pm/Gir/Api/TopLevel.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::TopLevel;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Repository;
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::TopLevel');
+  my $class = (ref $type or $type or 'Gir::Api::TopLevel');
   my $groups =
   [
     'group_repository'
@@ -40,14 +40,14 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::TopLevel::new ($type);
+  my $self = Gir::Api::TopLevel::new $type;
 
 
 
diff --git a/tools/pm/Gir/Api/Type.pm b/tools/pm/Gir/Api/Type.pm
index b8b17c3..adac2d0 100644
--- a/tools/pm/Gir/Api/Type.pm
+++ b/tools/pm/Gir/Api/Type.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Type;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Type;
@@ -31,7 +31,7 @@ use Gir::Api::Varargs;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Type');
+  my $class = (ref $type or $type or 'Gir::Api::Type');
   my $groups =
   [
     'group_array',
@@ -46,18 +46,18 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Type::new ($type);
+  my $self = Gir::Api::Type::new $type;
 
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_foreign($params->{'foreign'});
-  $self->set_a_name($params->{'name'});
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_foreign ($params->{'foreign'});
+  $self->set_a_name ($params->{'name'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Union.pm b/tools/pm/Gir/Api/Union.pm
index 820fc0d..c69e2c7 100644
--- a/tools/pm/Gir/Api/Union.pm
+++ b/tools/pm/Gir/Api/Union.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::Union;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Constructor;
@@ -36,7 +36,7 @@ use Gir::Api::Union;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Union');
+  my $class = (ref $type or $type or 'Gir::Api::Union');
   my $groups =
   [
     'group_attribute',
@@ -62,24 +62,24 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Union::new ($type);
-
-  $self->set_a_c_symbol_prefix($params->{'c:symbol-prefix'});
-  $self->set_a_c_type($params->{'c:type'});
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_glib_get_type($params->{'glib:get-type'});
-  $self->set_a_glib_type_name($params->{'glib:type-name'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::Union::new $type;
+
+  $self->set_a_c_symbol_prefix ($params->{'c:symbol-prefix'});
+  $self->set_a_c_type ($params->{'c:type'});
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_glib_get_type ($params->{'glib:get-type'});
+  $self->set_a_glib_type_name ($params->{'glib:type-name'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Api/Varargs.pm b/tools/pm/Gir/Api/Varargs.pm
index 5db5b56..a040b10 100644
--- a/tools/pm/Gir/Api/Varargs.pm
+++ b/tools/pm/Gir/Api/Varargs.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,14 +22,14 @@ package Gir::Api::Varargs;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 
 
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::Varargs');
+  my $class = (ref $type or $type or 'Gir::Api::Varargs');
   my $groups =
   [
 
@@ -40,14 +40,14 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::Varargs::new ($type);
+  my $self = Gir::Api::Varargs::new $type;
 
 
 
diff --git a/tools/pm/Gir/Api/VirtualMethod.pm b/tools/pm/Gir/Api/VirtualMethod.pm
index aed375a..ef93f66 100644
--- a/tools/pm/Gir/Api/VirtualMethod.pm
+++ b/tools/pm/Gir/Api/VirtualMethod.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Api::VirtualMethod;
 use strict;
 use warnings;
 
-use parent qw(Gir::Api::Common::Base);
+use parent qw (Gir::Api::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -32,7 +32,7 @@ use Gir::Api::ReturnValue;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Api::VirtualMethod');
+  my $class = (ref $type or $type or 'Gir::Api::VirtualMethod');
   my $groups =
   [
     'group_attribute',
@@ -52,22 +52,22 @@ sub new ($)
   ];
   my $self = $class->SUPER::new ($groups, $attributes);
 
-  bless ($self, $class);
+  bless $self, $class;
   return $self;
 }
 
 sub new_with_params ($$)
 {
   my ($type, $params) = @_;
-  my $self = Gir::Api::VirtualMethod::new ($type);
-
-  $self->set_a_deprecated($params->{'deprecated'});
-  $self->set_a_deprecated_version($params->{'deprecated-version'});
-  $self->set_a_introspectable($params->{'introspectable'});
-  $self->set_a_invoker($params->{'invoker'});
-  $self->set_a_name($params->{'name'});
-  $self->set_a_throws($params->{'throws'});
-  $self->set_a_version($params->{'version'});
+  my $self = Gir::Api::VirtualMethod::new $type;
+
+  $self->set_a_deprecated ($params->{'deprecated'});
+  $self->set_a_deprecated_version ($params->{'deprecated-version'});
+  $self->set_a_introspectable ($params->{'introspectable'});
+  $self->set_a_invoker ($params->{'invoker'});
+  $self->set_a_name ($params->{'name'});
+  $self->set_a_throws ($params->{'throws'});
+  $self->set_a_version ($params->{'version'});
 
   return $self;
 }
diff --git a/tools/pm/Gir/Handlers/Alias.pm b/tools/pm/Gir/Handlers/Alias.pm
index 1859291..4e26576 100644
--- a/tools/pm/Gir/Handlers/Alias.pm
+++ b/tools/pm/Gir/Handlers/Alias.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Alias;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -39,10 +39,10 @@ use Gir::Handlers::Type;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -50,10 +50,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -61,10 +61,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _type_start ($$@)
+sub _type_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_type_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_type_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Type->new_with_params ($params);
 
@@ -85,7 +85,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -103,7 +103,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -121,7 +121,7 @@ sub _type_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_type_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_type ($name, $object);
 }
@@ -132,7 +132,7 @@ sub _type_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Alias');
+  my $class = (ref $type or $type or 'Gir::Handlers::Alias');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -153,7 +153,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Array.pm b/tools/pm/Gir/Handlers/Array.pm
index 2abba4e..69d7c52 100644
--- a/tools/pm/Gir/Handlers/Array.pm
+++ b/tools/pm/Gir/Handlers/Array.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Array;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Type;
@@ -39,10 +39,10 @@ use Gir::Handlers::Varargs;
 ##
 ## private:
 ##
-sub _array_start ($$@)
+sub _array_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_array_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_array_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Array->new_with_params ($params);
 
@@ -50,10 +50,10 @@ sub _array_start ($$@)
   $self->_call_start_hooks ('array');
 }
 
-sub _type_start ($$@)
+sub _type_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_type_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_type_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Type->new_with_params ($params);
 
@@ -61,10 +61,10 @@ sub _type_start ($$@)
   $self->_call_start_hooks ('type');
 }
 
-sub _varargs_start ($$@)
+sub _varargs_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_varargs_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_varargs_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Varargs->new_with_params ($params);
 
@@ -85,7 +85,7 @@ sub _array_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_array_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_array ($name, $object);
 }
@@ -103,7 +103,7 @@ sub _type_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_type_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_type ($name, $object);
 }
@@ -121,7 +121,7 @@ sub _varargs_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_varargs_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_varargs ($name, $object);
 }
@@ -132,7 +132,7 @@ sub _varargs_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Array');
+  my $class = (ref $type or $type or 'Gir::Handlers::Array');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'array' => \&_array_start,
@@ -153,7 +153,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Attribute.pm b/tools/pm/Gir/Handlers/Attribute.pm
index 74ffb2c..43646f2 100644
--- a/tools/pm/Gir/Handlers/Attribute.pm
+++ b/tools/pm/Gir/Handlers/Attribute.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Attribute;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 
 
@@ -43,7 +43,7 @@ use Gir::Handlers::Common::Tags;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Attribute');
+  my $class = (ref $type or $type or 'Gir::Handlers::Attribute');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
 
@@ -58,7 +58,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Bitfield.pm b/tools/pm/Gir/Handlers/Bitfield.pm
index 50979ed..4f8b0f6 100644
--- a/tools/pm/Gir/Handlers/Bitfield.pm
+++ b/tools/pm/Gir/Handlers/Bitfield.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Bitfield;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -41,10 +41,10 @@ use Gir::Handlers::Member;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -52,10 +52,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -63,10 +63,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _function_start ($$@)
+sub _function_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_function_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_function_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Function->new_with_params ($params);
 
@@ -74,10 +74,10 @@ sub _function_start ($$@)
   $self->_call_start_hooks ('function');
 }
 
-sub _member_start ($$@)
+sub _member_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_member_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_member_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Member->new_with_params ($params);
 
@@ -98,7 +98,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -116,7 +116,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -134,7 +134,7 @@ sub _function_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_function_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_function ($name, $object);
 }
@@ -152,7 +152,7 @@ sub _member_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_member_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_member ($name, $object);
 }
@@ -163,7 +163,7 @@ sub _member_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Bitfield');
+  my $class = (ref $type or $type or 'Gir::Handlers::Bitfield');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -187,7 +187,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/CInclude.pm b/tools/pm/Gir/Handlers/CInclude.pm
index 79ab9d0..c742dee 100644
--- a/tools/pm/Gir/Handlers/CInclude.pm
+++ b/tools/pm/Gir/Handlers/CInclude.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::CInclude;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 
 
@@ -43,7 +43,7 @@ use Gir::Handlers::Common::Tags;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::CInclude');
+  my $class = (ref $type or $type or 'Gir::Handlers::CInclude');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
 
@@ -58,7 +58,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Callback.pm b/tools/pm/Gir/Handlers/Callback.pm
index 77258de..d32b848 100644
--- a/tools/pm/Gir/Handlers/Callback.pm
+++ b/tools/pm/Gir/Handlers/Callback.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Callback;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -41,10 +41,10 @@ use Gir::Handlers::ReturnValue;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -52,10 +52,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -63,10 +63,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _parameters_start ($$@)
+sub _parameters_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_parameters_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_parameters_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Parameters->new_with_params ($params);
 
@@ -74,10 +74,10 @@ sub _parameters_start ($$@)
   $self->_call_start_hooks ('parameters');
 }
 
-sub _return_value_start ($$@)
+sub _return_value_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_return_value_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_return_value_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::ReturnValue->new_with_params ($params);
 
@@ -98,7 +98,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -116,7 +116,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -134,7 +134,7 @@ sub _parameters_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_parameters_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_parameters ($name, $object);
 }
@@ -152,7 +152,7 @@ sub _return_value_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_return_value_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_return_value ($name, $object);
 }
@@ -163,7 +163,7 @@ sub _return_value_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Callback');
+  my $class = (ref $type or $type or 'Gir::Handlers::Callback');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -187,7 +187,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Class.pm b/tools/pm/Gir/Handlers/Class.pm
index 1b2c7a8..ad37788 100644
--- a/tools/pm/Gir/Handlers/Class.pm
+++ b/tools/pm/Gir/Handlers/Class.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Class;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Constructor;
@@ -57,10 +57,10 @@ use Gir::Handlers::VirtualMethod;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -68,10 +68,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _constructor_start ($$@)
+sub _constructor_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_constructor_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_constructor_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Constructor->new_with_params ($params);
 
@@ -79,10 +79,10 @@ sub _constructor_start ($$@)
   $self->_call_start_hooks ('constructor');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -90,10 +90,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _field_start ($$@)
+sub _field_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_field_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_field_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Field->new_with_params ($params);
 
@@ -101,10 +101,10 @@ sub _field_start ($$@)
   $self->_call_start_hooks ('field');
 }
 
-sub _function_start ($$@)
+sub _function_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_function_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_function_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Function->new_with_params ($params);
 
@@ -112,10 +112,10 @@ sub _function_start ($$@)
   $self->_call_start_hooks ('function');
 }
 
-sub _glib_signal_start ($$@)
+sub _glib_signal_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_glib_signal_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_glib_signal_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::GlibSignal->new_with_params ($params);
 
@@ -123,10 +123,10 @@ sub _glib_signal_start ($$@)
   $self->_call_start_hooks ('glib:signal');
 }
 
-sub _implements_start ($$@)
+sub _implements_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_implements_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_implements_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Implements->new_with_params ($params);
 
@@ -134,10 +134,10 @@ sub _implements_start ($$@)
   $self->_call_start_hooks ('implements');
 }
 
-sub _method_start ($$@)
+sub _method_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_method_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_method_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Method->new_with_params ($params);
 
@@ -145,10 +145,10 @@ sub _method_start ($$@)
   $self->_call_start_hooks ('method');
 }
 
-sub _property_start ($$@)
+sub _property_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_property_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_property_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Property->new_with_params ($params);
 
@@ -156,10 +156,10 @@ sub _property_start ($$@)
   $self->_call_start_hooks ('property');
 }
 
-sub _record_start ($$@)
+sub _record_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_record_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_record_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Record->new_with_params ($params);
 
@@ -167,10 +167,10 @@ sub _record_start ($$@)
   $self->_call_start_hooks ('record');
 }
 
-sub _union_start ($$@)
+sub _union_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_union_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_union_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Union->new_with_params ($params);
 
@@ -178,10 +178,10 @@ sub _union_start ($$@)
   $self->_call_start_hooks ('union');
 }
 
-sub _virtual_method_start ($$@)
+sub _virtual_method_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_virtual_method_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_virtual_method_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::VirtualMethod->new_with_params ($params);
 
@@ -202,7 +202,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -220,7 +220,7 @@ sub _constructor_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_constructor_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_constructor ($name, $object);
 }
@@ -238,7 +238,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -256,7 +256,7 @@ sub _field_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_field_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_field ($name, $object);
 }
@@ -274,7 +274,7 @@ sub _function_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_function_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_function ($name, $object);
 }
@@ -292,7 +292,7 @@ sub _glib_signal_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_glib_signal_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_glib_signal ($name, $object);
 }
@@ -310,7 +310,7 @@ sub _implements_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_implements_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_implements ($name, $object);
 }
@@ -328,7 +328,7 @@ sub _method_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_method_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_method ($name, $object);
 }
@@ -346,7 +346,7 @@ sub _property_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_property_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_property ($name, $object);
 }
@@ -364,7 +364,7 @@ sub _record_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_record_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_record ($name, $object);
 }
@@ -382,7 +382,7 @@ sub _union_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_union_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_union ($name, $object);
 }
@@ -400,7 +400,7 @@ sub _virtual_method_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_virtual_method_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_virtual_method ($name, $object);
 }
@@ -411,7 +411,7 @@ sub _virtual_method_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Class');
+  my $class = (ref $type or $type or 'Gir::Handlers::Class');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -459,7 +459,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Common/Base.pm b/tools/pm/Gir/Handlers/Common/Base.pm
index 36b9600..94fd14d 100644
--- a/tools/pm/Gir/Handlers/Common/Base.pm
+++ b/tools/pm/Gir/Handlers/Common/Base.pm
@@ -75,7 +75,7 @@ sub _call_end_hooks ($$)
 sub new ($$$)
 {
   my ($type, $start_store, $end_store, $subhandlers) = @_;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Common::Base');
+  my $class = (ref $type or $type or 'Gir::Handlers::Common::Base');
   my $self =
   {
     'start_handlers' => $start_store,
@@ -85,7 +85,7 @@ sub new ($$$)
     'subhandlers' => $subhandlers
   };
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 sub install_start_hook ($$$$)
@@ -137,7 +137,7 @@ sub get_subhandlers_for ($$)
   my ($self, $elem) = @_;
   my $subhandlers = $self->{'subhandlers'};
 
-  if (exists ($subhandlers->{$elem}))
+  if (exists $subhandlers->{$elem})
   {
     my $package = $subhandlers->{$elem};
     my $instance = $package->new;
diff --git a/tools/pm/Gir/Handlers/Common/Misc.pm b/tools/pm/Gir/Handlers/Common/Misc.pm
index 3bdf826..1f2740e 100644
--- a/tools/pm/Gir/Handlers/Common/Misc.pm
+++ b/tools/pm/Gir/Handlers/Common/Misc.pm
@@ -28,85 +28,73 @@ use Gir::Api::Common::Base;
 ##
 
 ##
-## Takes an array of mandatory-key->mandatory-value pairs, an array
-## of optional-key->default-value pairs and an array with names and values
-## returned by Expat parser and returns a hash with final key->value pairs. Note
-## that nonexistence of a key in atts_vals array that is specified in mandatory
-## keys array is fatal. Also is existence of a key that is specified in neither
-## mandatory keys array nor optional keys array. Also, if mandatory key has
-## a mandatory value specified then it is fatal when actual value differs from
+## Takes an array of mandatory-key->mandatory-value pairs, an array of
+## optional-key->default-value pairs and a hash with names and values returned
+## by Expat parser and returns a hash with final key->value pairs. Note that
+## nonexistence of a key in atts_vals array that is specified in mandatory keys
+## array is fatal. Also is existence of a key that is specified in neither
+## mandatory keys array nor optional keys array. Also, if mandatory key has a
+## mandatory value specified then it is fatal when actual value differs from
 ## it. If any optional key does not exist in atts_vals array then the one from
 ## array of optional-key->default_value pairs is taken.
 ##
-sub extract_values($$$)
+sub extract_values ($$%)
 {
-  my ($keys, $optional_keys, $atts_vals) = @_;
-  my $params = {};
+  my ($keys, $optional_keys, %atts_vals) = @_;
+  my %params = ();
   my %check = ();
   my %leftovers = ();
-  my $leftover = undef;
-  my $att = undef;
-  my $check_value = 0;
+  my %set = ();
 
   foreach my $pair (@{$keys})
   {
     my $key = $pair->[0];
 
-    $params->{$key} = $pair->[1];
+    $params{$key} = $pair->[1];
     $check{$key} = undef;
   }
+
   foreach my $pair (@{$optional_keys})
   {
-    $params->{$pair->[0]} = $pair->[1];
+    $params{$pair->[0]} = $pair->[1];
   }
 
-  foreach my $entry (@{$atts_vals})
+  while (my ($attribute, $value) = each %atts_vals)
   {
-    if (defined ($leftover))
-    {
-      $leftovers{$leftover} = $entry;
-      $leftover = undef;
-    }
-    elsif (not defined ($att))
+    if (exists $params{$attribute})
     {
-      if (exists ($params->{$entry}))
+      if (exists $set{$attribute})
       {
-        $att = $entry;
-        if (exists $check{$att})
-        {
-          delete ($check{$att});
-          $check_value = 1;
-        }
+        print STDERR 'Attribute `' . $attribute . ' is given twice.' . "\n";
+        exit 1;
       }
-      else
+      $set{$attribute} = undef;
+      if (exists $check{$attribute})
       {
-        $leftover = $entry;
-      }
-    }
-    else
-    {
-      if ($check_value)
-      {
-        $check_value = 0;
-        unless (defined $params->{$att})
+        delete $check{$attribute};
+
+        unless (defined $params{$attribute})
         {
-          $params->{$att} = $entry;
+          $params{$attribute} = $value;
         }
-        elsif ($params->{$att} ne $entry)
+        elsif ($params{$attribute} ne $value)
         {
-          print STDERR 'Expected value `' . $params->{$att} . '\' for `' . $att . '\', got `' . $entry  . '\'.' . "\n";
+          print STDERR 'Expected value `' . $params{$attribute} . '\' for `' . $attribute . '\', got `' . $value  . '\'.' . "\n";
           exit 1;
         }
       }
       else
       {
-        $params->{$att} = $entry;
+        $params{$attribute} = $value;
       }
-      $att = undef;
+    }
+    else
+    {
+      $leftovers{$attribute} = $value;
     }
   }
 
-  my @check_keys = sort keys (%check);
+  my @check_keys = sort keys %check;
   my $message = '';
 
   if (@check_keys > 0)
@@ -125,7 +113,7 @@ sub extract_values($$$)
   {
     $message .= 'Leftover attributes:' . "\n";
 
-    foreach $leftover (@leftover_keys)
+    foreach my $leftover (@leftover_keys)
     {
       $message .= "  " . $leftover . " => " . $leftovers{$leftover} . "\n";
     }
@@ -133,43 +121,54 @@ sub extract_values($$$)
 
   if ($message)
   {
-    # TODO: throw an error.
+# TODO: throw an error.
     print STDERR $message;
     exit 1;
   }
 
-  return $params;
+  return \%params;
 }
 
 ##
-## Takes an object and its index in array. Tries to find out object's name.
-## If it fails, then it just generates a name using given index. This function
+## Takes an object and its index in array. Tries to find out object's name. If
+## it fails, then it just generates a name using given index. This function
 ## tries to use (if possible) an original type name - it prefers `GtkWidget'
 ## over `Widget' or `gtk_widget_new' over `new'.
 ##
+## <type> tag is an exception. It has both "c:type" and "name" attributes, but
+## these are not used. <type> is always named like instance without any naming
+## attributes, that is - Gir::Api::Type#${index}. This is because <type> tag can
+## be non-unique child. This happens for GLib.HashTable, which has two <type>
+## children. This is not very important, because <type> tags rather should not
+## be accessed by its name, but instead by its index.
+##
 sub get_object_name ($$)
 {
   my ($object, $index) = @_;
-  my @name_atts =
-  (
-    'attribute_c_type',
-    'attribute_c_identifier',
-    'attribute_glib_type-name',
-    'attribute_name',
-    'attribute_glib_name'
-  );
-
-  foreach my $name (@name_atts)
+
+  unless ($object->isa ('Gir::Api::Type'))
   {
-    if ($object->_has_attribute ($name))
+    my @name_atts =
+    (
+      'attribute_c_type',
+      'attribute_c_identifier',
+      'attribute_glib_type-name',
+      'attribute_name',
+      'attribute_glib_name'
+    );
+
+    foreach my $name (@name_atts)
     {
-      my $object_name = $object->_get_attribute ($name);
+      if ($object->_has_attribute ($name))
+      {
+        my $object_name = $object->_get_attribute ($name);
 
-      return $object_name if (defined $object_name and $object_name ne '');
+        return $object_name if (defined $object_name and $object_name ne '');
+      }
     }
   }
 
-  return ref ($object) . '#' . $index;
+  return join '#', (ref $object), $index;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Common/State.pm b/tools/pm/Gir/Handlers/Common/State.pm
index 118a237..42ee062 100644
--- a/tools/pm/Gir/Handlers/Common/State.pm
+++ b/tools/pm/Gir/Handlers/Common/State.pm
@@ -29,13 +29,13 @@ use Gir::Api::TopLevel;
 sub new ($$$)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Common::State');
+  my $class = (ref $type or $type or 'Gir::Handlers::Common::State');
   my $self =
   {
     'object_stack' => [Gir::Api::TopLevel->new]
   };
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 sub push_object ($$)
@@ -43,7 +43,7 @@ sub push_object ($$)
   my ($self, $object) = @_;
   my $object_stack = $self->{'object_stack'};
 
-  push (@{$object_stack}, $object);
+  push @{$object_stack}, $object;
 }
 
 sub pop_object ($)
@@ -51,7 +51,7 @@ sub pop_object ($)
   my $self = shift;
   my $object_stack = $self->{'object_stack'};
 
-  pop (@{$object_stack});
+  pop @{$object_stack};
 }
 
 sub get_current_object ($)
diff --git a/tools/pm/Gir/Handlers/Common/Store.pm b/tools/pm/Gir/Handlers/Common/Store.pm
index 4a507c5..74804c3 100644
--- a/tools/pm/Gir/Handlers/Common/Store.pm
+++ b/tools/pm/Gir/Handlers/Common/Store.pm
@@ -27,13 +27,13 @@ use warnings;
 sub new ($$)
 {
   my ($type, $methods) = @_;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Common::Store');
+  my $class = (ref $type or $type or 'Gir::Handlers::Common::Store');
   my $self =
   {
     'methods' => $methods
   };
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 sub has_method_for ($$)
@@ -41,7 +41,7 @@ sub has_method_for ($$)
   my ($self, $elem) = @_;
   my $methods = $self->{'methods'};
 
-  return exists ($methods->{$elem});
+  return exists $methods->{$elem};
 }
 
 sub get_method_for ($$)
@@ -54,7 +54,7 @@ sub get_method_for ($$)
 
     return $methods->{$elem};
   }
-  # TODO: error.
+# TODO: error.
 }
 
 1;
diff --git a/tools/pm/Gir/Handlers/Common/Tags.pm b/tools/pm/Gir/Handlers/Common/Tags.pm
index ecdc3b4..fda5275 100644
--- a/tools/pm/Gir/Handlers/Common/Tags.pm
+++ b/tools/pm/Gir/Handlers/Common/Tags.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -24,640 +24,574 @@ use warnings;
 
 use Gir::Handlers::Common::Misc;
 
-sub get_alias_params (@)
+sub get_alias_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
-      ['c:type', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['introspectable', 1]
-    ],
-    \ _
-  );
+  [
+    ['name', undef]
+  ],
+  [
+    ['c:type', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['introspectable', 1]
+  ],
+  @_;
 }
 
 
-sub get_array_params (@)
+sub get_array_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
+  [
 
-    ],
-    [
-      ['c:type', undef],
-      ['fixed-size', undef],
-      ['length', undef],
-      ['name', undef],
-      ['zero-terminated', 1]
-    ],
-    \ _
-  );
+  ],
+  [
+    ['c:type', undef],
+    ['fixed-size', undef],
+    ['length', undef],
+    ['name', undef],
+    ['zero-terminated', 1]
+  ],
+  @_;
 }
 
 
-sub get_attribute_params (@)
+sub get_attribute_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef],
-      ['value', undef]
-    ],
-    [
+  [
+    ['name', undef],
+    ['value', undef]
+  ],
+  [
 
-    ],
-    \ _
-  );
+  ],
+  @_;
 }
 
 
-sub get_bitfield_params (@)
+sub get_bitfield_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['c:type', undef],
-      ['name', undef]
-    ],
-    [
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['glib:get-type', undef],
-      ['glib:type-name', undef],
-      ['introspectable', 1],
-      ['version', undef]
-    ],
-    \ _
-  );
+  [
+    ['c:type', undef],
+    ['name', undef]
+  ],
+  [
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['glib:get-type', undef],
+    ['glib:type-name', undef],
+    ['introspectable', 1],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_c_include_params (@)
+sub get_c_include_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
+  [
+    ['name', undef]
+  ],
+  [
 
-    ],
-    \ _
-  );
+  ],
+  @_;
 }
 
 
-sub get_callback_params (@)
+sub get_callback_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
-      ['c:type', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['introspectable', 1],
-      ['throws', 0],
-      ['version', undef]
-    ],
-    \ _
-  );
+  [
+    ['name', undef]
+  ],
+  [
+    ['c:type', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['introspectable', 1],
+    ['throws', 0],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_class_params (@)
+sub get_class_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['c:symbol-prefix', undef],
-      ['glib:type-name', undef],
-      ['name', undef]
-    ],
-    [
-      ['abstract', 0],
-      ['c:type', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['glib:fundamental', 0],
-      ['glib:get-type', undef],
-      ['glib:get-value-func', undef],
-      ['glib:ref-func', undef],
-      ['glib:set-value-func', undef],
-      ['glib:type-struct', undef],
-      ['glib:unref-func', undef],
-      ['introspectable', 1],
-      ['parent', undef],
-      ['version', undef]
-    ],
-    \ _
-  );
+  [
+    ['c:symbol-prefix', undef],
+    ['glib:type-name', undef],
+    ['name', undef]
+  ],
+  [
+    ['abstract', 0],
+    ['c:type', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['glib:fundamental', 0],
+    ['glib:get-type', undef],
+    ['glib:get-value-func', undef],
+    ['glib:ref-func', undef],
+    ['glib:set-value-func', undef],
+    ['glib:type-struct', undef],
+    ['glib:unref-func', undef],
+    ['introspectable', 1],
+    ['parent', undef],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_constant_params (@)
+sub get_constant_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['c:type', undef],
-      ['name', undef],
-      ['value', undef]
-    ],
-    [
+  [
+    ['c:type', undef],
+    ['name', undef],
+    ['value', undef]
+  ],
+  [
 
-    ],
-    \ _
-  );
+  ],
+  @_;
 }
 
-
-sub get_constructor_params (@)
-{
+
+sub get_constructor_params (%)
+{
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
-      ['c:identifier', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['introspectable', 1],
-      ['moved-to', undef],
-      ['shadowed-by', undef],
-      ['shadows', undef],
-      ['throws', 0],
-      ['version', undef]
-    ],
-    \ _
-  );
+  [
+    ['name', undef]
+  ],
+  [
+    ['c:identifier', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['introspectable', 1],
+    ['moved-to', undef],
+    ['shadowed-by', undef],
+    ['shadows', undef],
+    ['throws', 0],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_doc_params (@)
+sub get_doc_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['xml:whitespace', 'preserve']
-    ],
-    [
+  [
+    ['xml:whitespace', 'preserve']
+  ],
+  [
+
+  ],
+  @_;
+}
 
-    ],
-    \ _
-  );
-}
-
-
-sub get_enumeration_params (@)
-{
-  return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['c:type', undef],
-      ['name', undef]
-    ],
-    [
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['glib:error-domain', undef],
-      ['glib:get-type', undef],
-      ['glib:type-name', undef],
-      ['introspectable', 1],
-      ['version', undef]
-    ],
-    \ _
-  );
+
+sub get_enumeration_params (%)
+{
+  return Gir::Handlers::Common::Misc::extract_values
+  [
+    ['c:type', undef],
+    ['name', undef]
+  ],
+  [
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['glib:error-domain', undef],
+    ['glib:get-type', undef],
+    ['glib:type-name', undef],
+    ['introspectable', 1],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_field_params (@)
+sub get_field_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
-      ['bits', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['introspectable', 1],
-      ['private', 0],
-      ['readable', 1],
-      ['writable', 0]
-    ],
-    \ _
-  );
+  [
+    ['name', undef]
+  ],
+  [
+    ['bits', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['introspectable', 1],
+    ['private', 0],
+    ['readable', 1],
+    ['writable', 0]
+  ],
+  @_;
 }
 
 
-sub get_function_params (@)
+sub get_function_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
-      ['c:identifier', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['introspectable', 1],
-      ['moved-to', undef],
-      ['shadowed-by', undef],
-      ['shadows', undef],
-      ['throws', 0],
-      ['version', undef]
-    ],
-    \ _
-  );
+  [
+    ['name', undef]
+  ],
+  [
+    ['c:identifier', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['introspectable', 1],
+    ['moved-to', undef],
+    ['shadowed-by', undef],
+    ['shadows', undef],
+    ['throws', 0],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_glib_boxed_params (@)
+sub get_glib_boxed_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['glib:name', undef]
-    ],
-    [
-      ['c:symbol-prefix', undef],
-      ['glib:get-type', undef],
-      ['glib:type-name', undef]
-    ],
-    \ _
-  );
+  [
+    ['glib:name', undef]
+  ],
+  [
+    ['c:symbol-prefix', undef],
+    ['glib:get-type', undef],
+    ['glib:type-name', undef]
+  ],
+  @_;
 }
 
 
-sub get_glib_signal_params (@)
+sub get_glib_signal_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
-      ['action', 0],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['detailed', 0],
-      ['introspectable', 1],
-      ['no-hooks', 0],
-      ['no-recurse', 0],
-      ['version', undef],
-      ['when', undef]
-    ],
-    \ _
-  );
+  [
+    ['name', undef]
+  ],
+  [
+    ['action', 0],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['detailed', 0],
+    ['introspectable', 1],
+    ['no-hooks', 0],
+    ['no-recurse', 0],
+    ['version', undef],
+    ['when', undef]
+  ],
+  @_;
 }
 
 
-sub get_implements_params (@)
+sub get_implements_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
+  [
+    ['name', undef]
+  ],
+  [
 
-    ],
-    \ _
-  );
+  ],
+  @_;
 }
 
 
-sub get_include_params (@)
+sub get_include_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef],
-      ['version', undef]
-    ],
-    [
+  [
+    ['name', undef],
+    ['version', undef]
+  ],
+  [
 
-    ],
-    \ _
-  );
+  ],
+  @_;
 }
 
 
-sub get_interface_params (@)
+sub get_interface_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['c:symbol-prefix', undef],
-      ['glib:type-name', undef],
-      ['name', undef]
-    ],
-    [
-      ['c:type', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['glib:get-type', undef],
-      ['glib:type-struct', undef],
-      ['introspectable', 1],
-      ['version', undef]
-    ],
-    \ _
-  );
+  [
+    ['c:symbol-prefix', undef],
+    ['glib:type-name', undef],
+    ['name', undef]
+  ],
+  [
+    ['c:type', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['glib:get-type', undef],
+    ['glib:type-struct', undef],
+    ['introspectable', 1],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_member_params (@)
+sub get_member_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['c:identifier', undef],
-      ['name', undef],
-      ['value', undef]
-    ],
-    [
-      ['glib:nick', undef]
-    ],
-    \ _
-  );
+  [
+    ['c:identifier', undef],
+    ['name', undef],
+    ['value', undef]
+  ],
+  [
+    ['glib:nick', undef]
+  ],
+  @_;
 }
 
 
-sub get_method_params (@)
+sub get_method_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
-      ['c:identifier', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['introspectable', 1],
-      ['moved-to', undef],
-      ['shadowed-by', undef],
-      ['shadows', undef],
-      ['throws', 0],
-      ['version', undef]
-    ],
-    \ _
-  );
+  [
+    ['name', undef]
+  ],
+  [
+    ['c:identifier', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['introspectable', 1],
+    ['moved-to', undef],
+    ['shadowed-by', undef],
+    ['shadows', undef],
+    ['throws', 0],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_namespace_params (@)
+sub get_namespace_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['c:identifier-prefixes', undef],
-      ['c:symbol-prefixes', undef],
-      ['name', undef],
-      ['version', undef]
-    ],
-    [
-      ['shared-library', undef]
-    ],
-    \ _
-  );
+  [
+    ['c:identifier-prefixes', undef],
+    ['c:symbol-prefixes', undef],
+    ['name', undef],
+    ['version', undef]
+  ],
+  [
+    ['shared-library', undef]
+  ],
+  @_;
 }
 
 
-sub get_package_params (@)
+sub get_package_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
+  [
+    ['name', undef]
+  ],
+  [
 
-    ],
-    \ _
-  );
+  ],
+  @_;
 }
 
 
-sub get_parameter_params (@)
+sub get_parameter_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
+  [
 
-    ],
-    [
-      ['allow-none', 0],
-      ['caller-allocates', 0],
-      ['closure', undef],
-      ['destroy', undef],
-      ['direction', 'in'],
-      ['name', undef],
-      ['scope', undef],
-      ['skip', 0],
-      ['transfer-ownership', undef]
-    ],
-    \ _
-  );
+  ],
+  [
+    ['allow-none', 0],
+    ['caller-allocates', 0],
+    ['closure', undef],
+    ['destroy', undef],
+    ['direction', 'in'],
+    ['name', undef],
+    ['scope', undef],
+    ['skip', 0],
+    ['transfer-ownership', undef]
+  ],
+  @_;
 }
 
 
-sub get_parameters_params (@)
+sub get_parameters_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
+  [
 
-    ],
-    [
+  ],
+  [
 
-    ],
-    \ _
-  );
+  ],
+  @_;
 }
 
 
-sub get_prerequisite_params (@)
+sub get_prerequisite_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
+  [
+    ['name', undef]
+  ],
+  [
 
-    ],
-    \ _
-  );
+  ],
+  @_;
 }
 
 
-sub get_property_params (@)
+sub get_property_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef],
-      ['transfer-ownership', undef]
-    ],
-    [
-      ['construct', 0],
-      ['construct-only', 0],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['introspectable', 1],
-      ['readable', 1],
-      ['version', undef],
-      ['writable', 0]
-    ],
-    \ _
-  );
+  [
+    ['name', undef],
+    ['transfer-ownership', undef]
+  ],
+  [
+    ['construct', 0],
+    ['construct-only', 0],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['introspectable', 1],
+    ['readable', 1],
+    ['version', undef],
+    ['writable', 0]
+  ],
+  @_;
 }
 
 
-sub get_record_params (@)
+sub get_record_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
+  [
 
-    ],
-    [
-      ['c:symbol-prefix', undef],
-      ['c:type', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['disguised', 0],
-      ['foreign', 0],
-      ['glib:get-type', undef],
-      ['glib:is-gtype-struct-for', undef],
-      ['glib:type-name', undef],
-      ['introspectable', 1],
-      ['name', undef],
-      ['version', undef]
-    ],
-    \ _
-  );
+  ],
+  [
+    ['c:symbol-prefix', undef],
+    ['c:type', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['disguised', 0],
+    ['foreign', 0],
+    ['glib:get-type', undef],
+    ['glib:is-gtype-struct-for', undef],
+    ['glib:type-name', undef],
+    ['introspectable', 1],
+    ['name', undef],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_repository_params (@)
+sub get_repository_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['version', '1.2'],
-      ['xmlns', 'http://www.gtk.org/introspection/core/1.0'],
-      ['xmlns:c', 'http://www.gtk.org/introspection/c/1.0']
-    ],
-    [
-      ['xmlns:glib', 'http://www.gtk.org/introspection/glib/1.0']
-    ],
-    \ _
-  );
+  [
+    ['version', '1.2'],
+    ['xmlns', 'http://www.gtk.org/introspection/core/1.0'],
+    ['xmlns:c', 'http://www.gtk.org/introspection/c/1.0']
+  ],
+  [
+    ['xmlns:glib', 'http://www.gtk.org/introspection/glib/1.0']
+  ],
+  @_;
 }
 
 
-sub get_return_value_params (@)
+sub get_return_value_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
+  [
 
-    ],
-    [
-      ['skip', 0],
-      ['transfer-ownership', undef]
-    ],
-    \ _
-  );
+  ],
+  [
+    ['skip', 0],
+    ['transfer-ownership', undef]
+  ],
+  @_;
 }
 
 
-sub get_type_params (@)
+sub get_type_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
+  [
 
-    ],
-    [
-      ['c:type', undef],
-      ['foreign', 0],
-      ['name', undef]
-    ],
-    \ _
-  );
+  ],
+  [
+    ['c:type', undef],
+    ['foreign', 0],
+    ['name', undef]
+  ],
+  @_;
 }
 
 
-sub get_union_params (@)
+sub get_union_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
+  [
 
-    ],
-    [
-      ['c:symbol-prefix', undef],
-      ['c:type', undef],
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['glib:get-type', undef],
-      ['glib:type-name', undef],
-      ['introspectable', 1],
-      ['name', undef],
-      ['version', undef]
-    ],
-    \ _
-  );
+  ],
+  [
+    ['c:symbol-prefix', undef],
+    ['c:type', undef],
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['glib:get-type', undef],
+    ['glib:type-name', undef],
+    ['introspectable', 1],
+    ['name', undef],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
-sub get_varargs_params (@)
+sub get_varargs_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
+  [
 
-    ],
-    [
+  ],
+  [
 
-    ],
-    \ _
-  );
+  ],
+  @_;
 }
 
 
-sub get_virtual_method_params (@)
+sub get_virtual_method_params (%)
 {
   return Gir::Handlers::Common::Misc::extract_values
-  (
-    [
-      ['name', undef]
-    ],
-    [
-      ['deprecated', undef],
-      ['deprecated-version', undef],
-      ['introspectable', 1],
-      ['invoker', undef],
-      ['throws', 0],
-      ['version', undef]
-    ],
-    \ _
-  );
+  [
+    ['name', undef]
+  ],
+  [
+    ['deprecated', undef],
+    ['deprecated-version', undef],
+    ['introspectable', 1],
+    ['invoker', undef],
+    ['throws', 0],
+    ['version', undef]
+  ],
+  @_;
 }
 
 
diff --git a/tools/pm/Gir/Handlers/Constant.pm b/tools/pm/Gir/Handlers/Constant.pm
index aaebedc..6d98de9 100644
--- a/tools/pm/Gir/Handlers/Constant.pm
+++ b/tools/pm/Gir/Handlers/Constant.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Constant;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Type;
@@ -39,10 +39,10 @@ use Gir::Handlers::Varargs;
 ##
 ## private:
 ##
-sub _array_start ($$@)
+sub _array_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_array_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_array_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Array->new_with_params ($params);
 
@@ -50,10 +50,10 @@ sub _array_start ($$@)
   $self->_call_start_hooks ('array');
 }
 
-sub _type_start ($$@)
+sub _type_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_type_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_type_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Type->new_with_params ($params);
 
@@ -61,10 +61,10 @@ sub _type_start ($$@)
   $self->_call_start_hooks ('type');
 }
 
-sub _varargs_start ($$@)
+sub _varargs_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_varargs_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_varargs_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Varargs->new_with_params ($params);
 
@@ -85,7 +85,7 @@ sub _array_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_array_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_array ($name, $object);
 }
@@ -103,7 +103,7 @@ sub _type_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_type_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_type ($name, $object);
 }
@@ -121,7 +121,7 @@ sub _varargs_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_varargs_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_varargs ($name, $object);
 }
@@ -132,7 +132,7 @@ sub _varargs_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Constant');
+  my $class = (ref $type or $type or 'Gir::Handlers::Constant');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'array' => \&_array_start,
@@ -153,7 +153,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Constructor.pm b/tools/pm/Gir/Handlers/Constructor.pm
index 1363006..79bd5d4 100644
--- a/tools/pm/Gir/Handlers/Constructor.pm
+++ b/tools/pm/Gir/Handlers/Constructor.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Constructor;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -41,10 +41,10 @@ use Gir::Handlers::ReturnValue;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -52,10 +52,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -63,10 +63,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _parameters_start ($$@)
+sub _parameters_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_parameters_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_parameters_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Parameters->new_with_params ($params);
 
@@ -74,10 +74,10 @@ sub _parameters_start ($$@)
   $self->_call_start_hooks ('parameters');
 }
 
-sub _return_value_start ($$@)
+sub _return_value_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_return_value_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_return_value_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::ReturnValue->new_with_params ($params);
 
@@ -98,7 +98,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -116,7 +116,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -134,7 +134,7 @@ sub _parameters_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_parameters_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_parameters ($name, $object);
 }
@@ -152,7 +152,7 @@ sub _return_value_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_return_value_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_return_value ($name, $object);
 }
@@ -163,7 +163,7 @@ sub _return_value_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Constructor');
+  my $class = (ref $type or $type or 'Gir::Handlers::Constructor');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -187,7 +187,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Doc.pm b/tools/pm/Gir/Handlers/Doc.pm
index bf838ea..0b8ade3 100644
--- a/tools/pm/Gir/Handlers/Doc.pm
+++ b/tools/pm/Gir/Handlers/Doc.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Doc;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 
 
@@ -43,7 +43,7 @@ use Gir::Handlers::Common::Tags;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Doc');
+  my $class = (ref $type or $type or 'Gir::Handlers::Doc');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
 
@@ -58,7 +58,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Enumeration.pm b/tools/pm/Gir/Handlers/Enumeration.pm
index 6c0088e..b0b9fe0 100644
--- a/tools/pm/Gir/Handlers/Enumeration.pm
+++ b/tools/pm/Gir/Handlers/Enumeration.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Enumeration;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -41,10 +41,10 @@ use Gir::Handlers::Member;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -52,10 +52,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -63,10 +63,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _function_start ($$@)
+sub _function_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_function_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_function_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Function->new_with_params ($params);
 
@@ -74,10 +74,10 @@ sub _function_start ($$@)
   $self->_call_start_hooks ('function');
 }
 
-sub _member_start ($$@)
+sub _member_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_member_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_member_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Member->new_with_params ($params);
 
@@ -98,7 +98,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -116,7 +116,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -134,7 +134,7 @@ sub _function_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_function_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_function ($name, $object);
 }
@@ -152,7 +152,7 @@ sub _member_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_member_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_member ($name, $object);
 }
@@ -163,7 +163,7 @@ sub _member_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Enumeration');
+  my $class = (ref $type or $type or 'Gir::Handlers::Enumeration');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -187,7 +187,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Field.pm b/tools/pm/Gir/Handlers/Field.pm
index 70531a8..1df5f0c 100644
--- a/tools/pm/Gir/Handlers/Field.pm
+++ b/tools/pm/Gir/Handlers/Field.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Field;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Attribute;
@@ -45,10 +45,10 @@ use Gir::Handlers::Varargs;
 ##
 ## private:
 ##
-sub _array_start ($$@)
+sub _array_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_array_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_array_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Array->new_with_params ($params);
 
@@ -56,10 +56,10 @@ sub _array_start ($$@)
   $self->_call_start_hooks ('array');
 }
 
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -67,10 +67,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _callback_start ($$@)
+sub _callback_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_callback_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_callback_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Callback->new_with_params ($params);
 
@@ -78,10 +78,10 @@ sub _callback_start ($$@)
   $self->_call_start_hooks ('callback');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -89,10 +89,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _type_start ($$@)
+sub _type_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_type_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_type_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Type->new_with_params ($params);
 
@@ -100,10 +100,10 @@ sub _type_start ($$@)
   $self->_call_start_hooks ('type');
 }
 
-sub _varargs_start ($$@)
+sub _varargs_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_varargs_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_varargs_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Varargs->new_with_params ($params);
 
@@ -124,7 +124,7 @@ sub _array_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_array_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_array ($name, $object);
 }
@@ -142,7 +142,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -160,7 +160,7 @@ sub _callback_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_callback_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_callback ($name, $object);
 }
@@ -178,7 +178,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -196,7 +196,7 @@ sub _type_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_type_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_type ($name, $object);
 }
@@ -214,7 +214,7 @@ sub _varargs_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_varargs_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_varargs ($name, $object);
 }
@@ -225,7 +225,7 @@ sub _varargs_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Field');
+  my $class = (ref $type or $type or 'Gir::Handlers::Field');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'array' => \&_array_start,
@@ -255,7 +255,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Function.pm b/tools/pm/Gir/Handlers/Function.pm
index 1cbefe5..344e7d0 100644
--- a/tools/pm/Gir/Handlers/Function.pm
+++ b/tools/pm/Gir/Handlers/Function.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Function;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -41,10 +41,10 @@ use Gir::Handlers::ReturnValue;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -52,10 +52,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -63,10 +63,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _parameters_start ($$@)
+sub _parameters_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_parameters_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_parameters_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Parameters->new_with_params ($params);
 
@@ -74,10 +74,10 @@ sub _parameters_start ($$@)
   $self->_call_start_hooks ('parameters');
 }
 
-sub _return_value_start ($$@)
+sub _return_value_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_return_value_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_return_value_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::ReturnValue->new_with_params ($params);
 
@@ -98,7 +98,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -116,7 +116,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -134,7 +134,7 @@ sub _parameters_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_parameters_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_parameters ($name, $object);
 }
@@ -152,7 +152,7 @@ sub _return_value_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_return_value_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_return_value ($name, $object);
 }
@@ -163,7 +163,7 @@ sub _return_value_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Function');
+  my $class = (ref $type or $type or 'Gir::Handlers::Function');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -187,7 +187,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/GlibBoxed.pm b/tools/pm/Gir/Handlers/GlibBoxed.pm
index bde3fef..6c989e5 100644
--- a/tools/pm/Gir/Handlers/GlibBoxed.pm
+++ b/tools/pm/Gir/Handlers/GlibBoxed.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::GlibBoxed;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Constructor;
@@ -43,10 +43,10 @@ use Gir::Handlers::Method;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -54,10 +54,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _constructor_start ($$@)
+sub _constructor_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_constructor_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_constructor_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Constructor->new_with_params ($params);
 
@@ -65,10 +65,10 @@ sub _constructor_start ($$@)
   $self->_call_start_hooks ('constructor');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -76,10 +76,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _function_start ($$@)
+sub _function_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_function_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_function_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Function->new_with_params ($params);
 
@@ -87,10 +87,10 @@ sub _function_start ($$@)
   $self->_call_start_hooks ('function');
 }
 
-sub _method_start ($$@)
+sub _method_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_method_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_method_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Method->new_with_params ($params);
 
@@ -111,7 +111,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -129,7 +129,7 @@ sub _constructor_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_constructor_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_constructor ($name, $object);
 }
@@ -147,7 +147,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -165,7 +165,7 @@ sub _function_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_function_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_function ($name, $object);
 }
@@ -183,7 +183,7 @@ sub _method_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_method_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_method ($name, $object);
 }
@@ -194,7 +194,7 @@ sub _method_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::GlibBoxed');
+  my $class = (ref $type or $type or 'Gir::Handlers::GlibBoxed');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -221,7 +221,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/GlibSignal.pm b/tools/pm/Gir/Handlers/GlibSignal.pm
index 43ced80..dd06208 100644
--- a/tools/pm/Gir/Handlers/GlibSignal.pm
+++ b/tools/pm/Gir/Handlers/GlibSignal.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::GlibSignal;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -41,10 +41,10 @@ use Gir::Handlers::ReturnValue;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -52,10 +52,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -63,10 +63,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _parameters_start ($$@)
+sub _parameters_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_parameters_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_parameters_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Parameters->new_with_params ($params);
 
@@ -74,10 +74,10 @@ sub _parameters_start ($$@)
   $self->_call_start_hooks ('parameters');
 }
 
-sub _return_value_start ($$@)
+sub _return_value_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_return_value_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_return_value_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::ReturnValue->new_with_params ($params);
 
@@ -98,7 +98,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -116,7 +116,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -134,7 +134,7 @@ sub _parameters_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_parameters_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_parameters ($name, $object);
 }
@@ -152,7 +152,7 @@ sub _return_value_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_return_value_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_return_value ($name, $object);
 }
@@ -163,7 +163,7 @@ sub _return_value_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::GlibSignal');
+  my $class = (ref $type or $type or 'Gir::Handlers::GlibSignal');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -187,7 +187,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Implements.pm b/tools/pm/Gir/Handlers/Implements.pm
index c0aa37a..fca7121 100644
--- a/tools/pm/Gir/Handlers/Implements.pm
+++ b/tools/pm/Gir/Handlers/Implements.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Implements;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 
 
@@ -43,7 +43,7 @@ use Gir::Handlers::Common::Tags;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Implements');
+  my $class = (ref $type or $type or 'Gir::Handlers::Implements');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
 
@@ -58,7 +58,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Include.pm b/tools/pm/Gir/Handlers/Include.pm
index 53e45d8..9da922e 100644
--- a/tools/pm/Gir/Handlers/Include.pm
+++ b/tools/pm/Gir/Handlers/Include.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Include;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 
 
@@ -43,7 +43,7 @@ use Gir::Handlers::Common::Tags;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Include');
+  my $class = (ref $type or $type or 'Gir::Handlers::Include');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
 
@@ -58,7 +58,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Interface.pm b/tools/pm/Gir/Handlers/Interface.pm
index 4c89ad3..1ed2179 100644
--- a/tools/pm/Gir/Handlers/Interface.pm
+++ b/tools/pm/Gir/Handlers/Interface.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Interface;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -55,10 +55,10 @@ use Gir::Handlers::VirtualMethod;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -66,10 +66,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -77,10 +77,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _field_start ($$@)
+sub _field_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_field_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_field_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Field->new_with_params ($params);
 
@@ -88,10 +88,10 @@ sub _field_start ($$@)
   $self->_call_start_hooks ('field');
 }
 
-sub _function_start ($$@)
+sub _function_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_function_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_function_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Function->new_with_params ($params);
 
@@ -99,10 +99,10 @@ sub _function_start ($$@)
   $self->_call_start_hooks ('function');
 }
 
-sub _glib_signal_start ($$@)
+sub _glib_signal_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_glib_signal_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_glib_signal_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::GlibSignal->new_with_params ($params);
 
@@ -110,10 +110,10 @@ sub _glib_signal_start ($$@)
   $self->_call_start_hooks ('glib:signal');
 }
 
-sub _method_start ($$@)
+sub _method_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_method_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_method_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Method->new_with_params ($params);
 
@@ -121,10 +121,10 @@ sub _method_start ($$@)
   $self->_call_start_hooks ('method');
 }
 
-sub _prerequisite_start ($$@)
+sub _prerequisite_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_prerequisite_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_prerequisite_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Prerequisite->new_with_params ($params);
 
@@ -132,10 +132,10 @@ sub _prerequisite_start ($$@)
   $self->_call_start_hooks ('prerequisite');
 }
 
-sub _property_start ($$@)
+sub _property_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_property_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_property_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Property->new_with_params ($params);
 
@@ -143,10 +143,10 @@ sub _property_start ($$@)
   $self->_call_start_hooks ('property');
 }
 
-sub _record_start ($$@)
+sub _record_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_record_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_record_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Record->new_with_params ($params);
 
@@ -154,10 +154,10 @@ sub _record_start ($$@)
   $self->_call_start_hooks ('record');
 }
 
-sub _union_start ($$@)
+sub _union_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_union_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_union_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Union->new_with_params ($params);
 
@@ -165,10 +165,10 @@ sub _union_start ($$@)
   $self->_call_start_hooks ('union');
 }
 
-sub _virtual_method_start ($$@)
+sub _virtual_method_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_virtual_method_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_virtual_method_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::VirtualMethod->new_with_params ($params);
 
@@ -189,7 +189,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -207,7 +207,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -225,7 +225,7 @@ sub _field_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_field_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_field ($name, $object);
 }
@@ -243,7 +243,7 @@ sub _function_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_function_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_function ($name, $object);
 }
@@ -261,7 +261,7 @@ sub _glib_signal_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_glib_signal_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_glib_signal ($name, $object);
 }
@@ -279,7 +279,7 @@ sub _method_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_method_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_method ($name, $object);
 }
@@ -297,7 +297,7 @@ sub _prerequisite_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_prerequisite_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_prerequisite ($name, $object);
 }
@@ -315,7 +315,7 @@ sub _property_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_property_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_property ($name, $object);
 }
@@ -333,7 +333,7 @@ sub _record_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_record_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_record ($name, $object);
 }
@@ -351,7 +351,7 @@ sub _union_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_union_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_union ($name, $object);
 }
@@ -369,7 +369,7 @@ sub _virtual_method_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_virtual_method_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_virtual_method ($name, $object);
 }
@@ -380,7 +380,7 @@ sub _virtual_method_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Interface');
+  my $class = (ref $type or $type or 'Gir::Handlers::Interface');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -425,7 +425,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Member.pm b/tools/pm/Gir/Handlers/Member.pm
index 0a5a849..2f65baa 100644
--- a/tools/pm/Gir/Handlers/Member.pm
+++ b/tools/pm/Gir/Handlers/Member.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Member;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 
 
@@ -43,7 +43,7 @@ use Gir::Handlers::Common::Tags;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Member');
+  my $class = (ref $type or $type or 'Gir::Handlers::Member');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
 
@@ -58,7 +58,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Method.pm b/tools/pm/Gir/Handlers/Method.pm
index 9208560..9c9da8e 100644
--- a/tools/pm/Gir/Handlers/Method.pm
+++ b/tools/pm/Gir/Handlers/Method.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Method;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -41,10 +41,10 @@ use Gir::Handlers::ReturnValue;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -52,10 +52,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -63,10 +63,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _parameters_start ($$@)
+sub _parameters_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_parameters_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_parameters_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Parameters->new_with_params ($params);
 
@@ -74,10 +74,10 @@ sub _parameters_start ($$@)
   $self->_call_start_hooks ('parameters');
 }
 
-sub _return_value_start ($$@)
+sub _return_value_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_return_value_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_return_value_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::ReturnValue->new_with_params ($params);
 
@@ -98,7 +98,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -116,7 +116,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -134,7 +134,7 @@ sub _parameters_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_parameters_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_parameters ($name, $object);
 }
@@ -152,7 +152,7 @@ sub _return_value_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_return_value_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_return_value ($name, $object);
 }
@@ -163,7 +163,7 @@ sub _return_value_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Method');
+  my $class = (ref $type or $type or 'Gir::Handlers::Method');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -187,7 +187,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Namespace.pm b/tools/pm/Gir/Handlers/Namespace.pm
index 1e0d2f2..7ac604a 100644
--- a/tools/pm/Gir/Handlers/Namespace.pm
+++ b/tools/pm/Gir/Handlers/Namespace.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Namespace;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Alias;
 use Gir::Api::Bitfield;
@@ -55,10 +55,10 @@ use Gir::Handlers::Union;
 ##
 ## private:
 ##
-sub _alias_start ($$@)
+sub _alias_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_alias_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_alias_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Alias->new_with_params ($params);
 
@@ -66,10 +66,10 @@ sub _alias_start ($$@)
   $self->_call_start_hooks ('alias');
 }
 
-sub _bitfield_start ($$@)
+sub _bitfield_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_bitfield_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_bitfield_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Bitfield->new_with_params ($params);
 
@@ -77,10 +77,10 @@ sub _bitfield_start ($$@)
   $self->_call_start_hooks ('bitfield');
 }
 
-sub _callback_start ($$@)
+sub _callback_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_callback_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_callback_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Callback->new_with_params ($params);
 
@@ -88,10 +88,10 @@ sub _callback_start ($$@)
   $self->_call_start_hooks ('callback');
 }
 
-sub _class_start ($$@)
+sub _class_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_class_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_class_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Class->new_with_params ($params);
 
@@ -99,10 +99,10 @@ sub _class_start ($$@)
   $self->_call_start_hooks ('class');
 }
 
-sub _constant_start ($$@)
+sub _constant_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_constant_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_constant_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Constant->new_with_params ($params);
 
@@ -110,10 +110,10 @@ sub _constant_start ($$@)
   $self->_call_start_hooks ('constant');
 }
 
-sub _enumeration_start ($$@)
+sub _enumeration_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_enumeration_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_enumeration_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Enumeration->new_with_params ($params);
 
@@ -121,10 +121,10 @@ sub _enumeration_start ($$@)
   $self->_call_start_hooks ('enumeration');
 }
 
-sub _function_start ($$@)
+sub _function_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_function_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_function_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Function->new_with_params ($params);
 
@@ -132,10 +132,10 @@ sub _function_start ($$@)
   $self->_call_start_hooks ('function');
 }
 
-sub _glib_boxed_start ($$@)
+sub _glib_boxed_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_glib_boxed_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_glib_boxed_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::GlibBoxed->new_with_params ($params);
 
@@ -143,10 +143,10 @@ sub _glib_boxed_start ($$@)
   $self->_call_start_hooks ('glib:boxed');
 }
 
-sub _interface_start ($$@)
+sub _interface_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_interface_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_interface_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Interface->new_with_params ($params);
 
@@ -154,10 +154,10 @@ sub _interface_start ($$@)
   $self->_call_start_hooks ('interface');
 }
 
-sub _record_start ($$@)
+sub _record_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_record_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_record_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Record->new_with_params ($params);
 
@@ -165,10 +165,10 @@ sub _record_start ($$@)
   $self->_call_start_hooks ('record');
 }
 
-sub _union_start ($$@)
+sub _union_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_union_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_union_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Union->new_with_params ($params);
 
@@ -189,7 +189,7 @@ sub _alias_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_alias_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_alias ($name, $object);
 }
@@ -207,7 +207,7 @@ sub _bitfield_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_bitfield_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_bitfield ($name, $object);
 }
@@ -225,7 +225,7 @@ sub _callback_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_callback_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_callback ($name, $object);
 }
@@ -243,7 +243,7 @@ sub _class_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_class_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_class ($name, $object);
 }
@@ -261,7 +261,7 @@ sub _constant_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_constant_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_constant ($name, $object);
 }
@@ -279,7 +279,7 @@ sub _enumeration_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_enumeration_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_enumeration ($name, $object);
 }
@@ -297,7 +297,7 @@ sub _function_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_function_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_function ($name, $object);
 }
@@ -315,7 +315,7 @@ sub _glib_boxed_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_glib_boxed_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_glib_boxed ($name, $object);
 }
@@ -333,7 +333,7 @@ sub _interface_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_interface_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_interface ($name, $object);
 }
@@ -351,7 +351,7 @@ sub _record_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_record_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_record ($name, $object);
 }
@@ -369,7 +369,7 @@ sub _union_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_union_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_union ($name, $object);
 }
@@ -380,7 +380,7 @@ sub _union_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Namespace');
+  my $class = (ref $type or $type or 'Gir::Handlers::Namespace');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'alias' => \&_alias_start,
@@ -425,7 +425,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Package.pm b/tools/pm/Gir/Handlers/Package.pm
index 4fbd2ad..6c5f0de 100644
--- a/tools/pm/Gir/Handlers/Package.pm
+++ b/tools/pm/Gir/Handlers/Package.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Package;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 
 
@@ -43,7 +43,7 @@ use Gir::Handlers::Common::Tags;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Package');
+  my $class = (ref $type or $type or 'Gir::Handlers::Package');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
 
@@ -58,7 +58,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Parameter.pm b/tools/pm/Gir/Handlers/Parameter.pm
index fc5ae36..371c977 100644
--- a/tools/pm/Gir/Handlers/Parameter.pm
+++ b/tools/pm/Gir/Handlers/Parameter.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Parameter;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Attribute;
@@ -43,10 +43,10 @@ use Gir::Handlers::Varargs;
 ##
 ## private:
 ##
-sub _array_start ($$@)
+sub _array_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_array_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_array_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Array->new_with_params ($params);
 
@@ -54,10 +54,10 @@ sub _array_start ($$@)
   $self->_call_start_hooks ('array');
 }
 
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -65,10 +65,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -76,10 +76,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _type_start ($$@)
+sub _type_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_type_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_type_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Type->new_with_params ($params);
 
@@ -87,10 +87,10 @@ sub _type_start ($$@)
   $self->_call_start_hooks ('type');
 }
 
-sub _varargs_start ($$@)
+sub _varargs_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_varargs_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_varargs_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Varargs->new_with_params ($params);
 
@@ -111,7 +111,7 @@ sub _array_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_array_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_array ($name, $object);
 }
@@ -129,7 +129,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -147,7 +147,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -165,7 +165,7 @@ sub _type_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_type_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_type ($name, $object);
 }
@@ -183,7 +183,7 @@ sub _varargs_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_varargs_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_varargs ($name, $object);
 }
@@ -194,7 +194,7 @@ sub _varargs_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Parameter');
+  my $class = (ref $type or $type or 'Gir::Handlers::Parameter');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'array' => \&_array_start,
@@ -221,7 +221,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Parameters.pm b/tools/pm/Gir/Handlers/Parameters.pm
index 9592f5d..901da00 100644
--- a/tools/pm/Gir/Handlers/Parameters.pm
+++ b/tools/pm/Gir/Handlers/Parameters.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Parameters;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Parameter;
 
@@ -35,10 +35,10 @@ use Gir::Handlers::Parameter;
 ##
 ## private:
 ##
-sub _parameter_start ($$@)
+sub _parameter_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_parameter_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_parameter_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Parameter->new_with_params ($params);
 
@@ -59,7 +59,7 @@ sub _parameter_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_parameter_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_parameter ($name, $object);
 }
@@ -70,7 +70,7 @@ sub _parameter_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Parameters');
+  my $class = (ref $type or $type or 'Gir::Handlers::Parameters');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'parameter' => \&_parameter_start
@@ -85,7 +85,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Prerequisite.pm b/tools/pm/Gir/Handlers/Prerequisite.pm
index 103d5a7..e73ce55 100644
--- a/tools/pm/Gir/Handlers/Prerequisite.pm
+++ b/tools/pm/Gir/Handlers/Prerequisite.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Prerequisite;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 
 
@@ -43,7 +43,7 @@ use Gir::Handlers::Common::Tags;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Prerequisite');
+  my $class = (ref $type or $type or 'Gir::Handlers::Prerequisite');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
 
@@ -58,7 +58,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Property.pm b/tools/pm/Gir/Handlers/Property.pm
index 6204547..8a8c327 100644
--- a/tools/pm/Gir/Handlers/Property.pm
+++ b/tools/pm/Gir/Handlers/Property.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Property;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Attribute;
@@ -43,10 +43,10 @@ use Gir::Handlers::Varargs;
 ##
 ## private:
 ##
-sub _array_start ($$@)
+sub _array_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_array_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_array_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Array->new_with_params ($params);
 
@@ -54,10 +54,10 @@ sub _array_start ($$@)
   $self->_call_start_hooks ('array');
 }
 
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -65,10 +65,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -76,10 +76,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _type_start ($$@)
+sub _type_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_type_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_type_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Type->new_with_params ($params);
 
@@ -87,10 +87,10 @@ sub _type_start ($$@)
   $self->_call_start_hooks ('type');
 }
 
-sub _varargs_start ($$@)
+sub _varargs_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_varargs_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_varargs_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Varargs->new_with_params ($params);
 
@@ -111,7 +111,7 @@ sub _array_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_array_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_array ($name, $object);
 }
@@ -129,7 +129,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -147,7 +147,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -165,7 +165,7 @@ sub _type_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_type_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_type ($name, $object);
 }
@@ -183,7 +183,7 @@ sub _varargs_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_varargs_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_varargs ($name, $object);
 }
@@ -194,7 +194,7 @@ sub _varargs_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Property');
+  my $class = (ref $type or $type or 'Gir::Handlers::Property');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'array' => \&_array_start,
@@ -221,7 +221,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Record.pm b/tools/pm/Gir/Handlers/Record.pm
index 9614937..b9fc2ed 100644
--- a/tools/pm/Gir/Handlers/Record.pm
+++ b/tools/pm/Gir/Handlers/Record.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Record;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Constructor;
@@ -49,10 +49,10 @@ use Gir::Handlers::Union;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -60,10 +60,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _constructor_start ($$@)
+sub _constructor_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_constructor_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_constructor_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Constructor->new_with_params ($params);
 
@@ -71,10 +71,10 @@ sub _constructor_start ($$@)
   $self->_call_start_hooks ('constructor');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -82,10 +82,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _field_start ($$@)
+sub _field_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_field_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_field_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Field->new_with_params ($params);
 
@@ -93,10 +93,10 @@ sub _field_start ($$@)
   $self->_call_start_hooks ('field');
 }
 
-sub _function_start ($$@)
+sub _function_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_function_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_function_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Function->new_with_params ($params);
 
@@ -104,10 +104,10 @@ sub _function_start ($$@)
   $self->_call_start_hooks ('function');
 }
 
-sub _method_start ($$@)
+sub _method_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_method_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_method_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Method->new_with_params ($params);
 
@@ -115,10 +115,10 @@ sub _method_start ($$@)
   $self->_call_start_hooks ('method');
 }
 
-sub _record_start ($$@)
+sub _record_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_record_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_record_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Record->new_with_params ($params);
 
@@ -126,10 +126,10 @@ sub _record_start ($$@)
   $self->_call_start_hooks ('record');
 }
 
-sub _union_start ($$@)
+sub _union_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_union_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_union_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Union->new_with_params ($params);
 
@@ -150,7 +150,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -168,7 +168,7 @@ sub _constructor_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_constructor_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_constructor ($name, $object);
 }
@@ -186,7 +186,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -204,7 +204,7 @@ sub _field_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_field_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_field ($name, $object);
 }
@@ -222,7 +222,7 @@ sub _function_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_function_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_function ($name, $object);
 }
@@ -240,7 +240,7 @@ sub _method_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_method_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_method ($name, $object);
 }
@@ -258,7 +258,7 @@ sub _record_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_record_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_record ($name, $object);
 }
@@ -276,7 +276,7 @@ sub _union_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_union_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_union ($name, $object);
 }
@@ -287,7 +287,7 @@ sub _union_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Record');
+  my $class = (ref $type or $type or 'Gir::Handlers::Record');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -323,7 +323,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Repository.pm b/tools/pm/Gir/Handlers/Repository.pm
index 9e269c1..04c5b60 100644
--- a/tools/pm/Gir/Handlers/Repository.pm
+++ b/tools/pm/Gir/Handlers/Repository.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Repository;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::CInclude;
 use Gir::Api::Include;
@@ -41,10 +41,10 @@ use Gir::Handlers::Package;
 ##
 ## private:
 ##
-sub _c_include_start ($$@)
+sub _c_include_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_c_include_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_c_include_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::CInclude->new_with_params ($params);
 
@@ -52,10 +52,10 @@ sub _c_include_start ($$@)
   $self->_call_start_hooks ('c:include');
 }
 
-sub _include_start ($$@)
+sub _include_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_include_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_include_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Include->new_with_params ($params);
 
@@ -63,10 +63,10 @@ sub _include_start ($$@)
   $self->_call_start_hooks ('include');
 }
 
-sub _namespace_start ($$@)
+sub _namespace_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_namespace_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_namespace_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Namespace->new_with_params ($params);
 
@@ -74,10 +74,10 @@ sub _namespace_start ($$@)
   $self->_call_start_hooks ('namespace');
 }
 
-sub _package_start ($$@)
+sub _package_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_package_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_package_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Package->new_with_params ($params);
 
@@ -98,7 +98,7 @@ sub _c_include_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_c_include_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_c_include ($name, $object);
 }
@@ -116,7 +116,7 @@ sub _include_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_include_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_include ($name, $object);
 }
@@ -134,7 +134,7 @@ sub _namespace_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_namespace_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_namespace ($name, $object);
 }
@@ -152,7 +152,7 @@ sub _package_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_package_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_package ($name, $object);
 }
@@ -163,7 +163,7 @@ sub _package_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Repository');
+  my $class = (ref $type or $type or 'Gir::Handlers::Repository');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'c:include' => \&_c_include_start,
@@ -187,7 +187,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/ReturnValue.pm b/tools/pm/Gir/Handlers/ReturnValue.pm
index 9011fad..49aa1fd 100644
--- a/tools/pm/Gir/Handlers/ReturnValue.pm
+++ b/tools/pm/Gir/Handlers/ReturnValue.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::ReturnValue;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Attribute;
@@ -43,10 +43,10 @@ use Gir::Handlers::Varargs;
 ##
 ## private:
 ##
-sub _array_start ($$@)
+sub _array_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_array_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_array_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Array->new_with_params ($params);
 
@@ -54,10 +54,10 @@ sub _array_start ($$@)
   $self->_call_start_hooks ('array');
 }
 
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -65,10 +65,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -76,10 +76,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _type_start ($$@)
+sub _type_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_type_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_type_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Type->new_with_params ($params);
 
@@ -87,10 +87,10 @@ sub _type_start ($$@)
   $self->_call_start_hooks ('type');
 }
 
-sub _varargs_start ($$@)
+sub _varargs_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_varargs_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_varargs_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Varargs->new_with_params ($params);
 
@@ -111,7 +111,7 @@ sub _array_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_array_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_array ($name, $object);
 }
@@ -129,7 +129,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -147,7 +147,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -165,7 +165,7 @@ sub _type_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_type_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_type ($name, $object);
 }
@@ -183,7 +183,7 @@ sub _varargs_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_varargs_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_varargs ($name, $object);
 }
@@ -194,7 +194,7 @@ sub _varargs_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::ReturnValue');
+  my $class = (ref $type or $type or 'Gir::Handlers::ReturnValue');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'array' => \&_array_start,
@@ -221,7 +221,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/TopLevel.pm b/tools/pm/Gir/Handlers/TopLevel.pm
index 2b6b7e3..17ecea6 100644
--- a/tools/pm/Gir/Handlers/TopLevel.pm
+++ b/tools/pm/Gir/Handlers/TopLevel.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::TopLevel;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Repository;
 
@@ -35,10 +35,10 @@ use Gir::Handlers::Repository;
 ##
 ## private:
 ##
-sub _repository_start ($$@)
+sub _repository_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_repository_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_repository_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Repository->new_with_params ($params);
 
@@ -59,7 +59,7 @@ sub _repository_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_repository_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_repository ($name, $object);
 }
@@ -70,7 +70,7 @@ sub _repository_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::TopLevel');
+  my $class = (ref $type or $type or 'Gir::Handlers::TopLevel');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'repository' => \&_repository_start
@@ -85,7 +85,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Type.pm b/tools/pm/Gir/Handlers/Type.pm
index 626b597..b1e87e3 100644
--- a/tools/pm/Gir/Handlers/Type.pm
+++ b/tools/pm/Gir/Handlers/Type.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Type;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Array;
 use Gir::Api::Type;
@@ -39,10 +39,10 @@ use Gir::Handlers::Varargs;
 ##
 ## private:
 ##
-sub _array_start ($$@)
+sub _array_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_array_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_array_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Array->new_with_params ($params);
 
@@ -50,10 +50,10 @@ sub _array_start ($$@)
   $self->_call_start_hooks ('array');
 }
 
-sub _type_start ($$@)
+sub _type_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_type_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_type_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Type->new_with_params ($params);
 
@@ -61,10 +61,10 @@ sub _type_start ($$@)
   $self->_call_start_hooks ('type');
 }
 
-sub _varargs_start ($$@)
+sub _varargs_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_varargs_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_varargs_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Varargs->new_with_params ($params);
 
@@ -85,7 +85,7 @@ sub _array_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_array_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_array ($name, $object);
 }
@@ -103,7 +103,7 @@ sub _type_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_type_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_type ($name, $object);
 }
@@ -121,7 +121,7 @@ sub _varargs_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_varargs_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_varargs ($name, $object);
 }
@@ -132,7 +132,7 @@ sub _varargs_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Type');
+  my $class = (ref $type or $type or 'Gir::Handlers::Type');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'array' => \&_array_start,
@@ -153,7 +153,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Union.pm b/tools/pm/Gir/Handlers/Union.pm
index be2c861..64745ad 100644
--- a/tools/pm/Gir/Handlers/Union.pm
+++ b/tools/pm/Gir/Handlers/Union.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Union;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Constructor;
@@ -49,10 +49,10 @@ use Gir::Handlers::Union;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -60,10 +60,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _constructor_start ($$@)
+sub _constructor_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_constructor_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_constructor_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Constructor->new_with_params ($params);
 
@@ -71,10 +71,10 @@ sub _constructor_start ($$@)
   $self->_call_start_hooks ('constructor');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -82,10 +82,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _field_start ($$@)
+sub _field_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_field_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_field_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Field->new_with_params ($params);
 
@@ -93,10 +93,10 @@ sub _field_start ($$@)
   $self->_call_start_hooks ('field');
 }
 
-sub _function_start ($$@)
+sub _function_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_function_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_function_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Function->new_with_params ($params);
 
@@ -104,10 +104,10 @@ sub _function_start ($$@)
   $self->_call_start_hooks ('function');
 }
 
-sub _method_start ($$@)
+sub _method_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_method_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_method_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Method->new_with_params ($params);
 
@@ -115,10 +115,10 @@ sub _method_start ($$@)
   $self->_call_start_hooks ('method');
 }
 
-sub _record_start ($$@)
+sub _record_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_record_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_record_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Record->new_with_params ($params);
 
@@ -126,10 +126,10 @@ sub _record_start ($$@)
   $self->_call_start_hooks ('record');
 }
 
-sub _union_start ($$@)
+sub _union_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_union_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_union_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Union->new_with_params ($params);
 
@@ -150,7 +150,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -168,7 +168,7 @@ sub _constructor_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_constructor_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_constructor ($name, $object);
 }
@@ -186,7 +186,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -204,7 +204,7 @@ sub _field_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_field_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_field ($name, $object);
 }
@@ -222,7 +222,7 @@ sub _function_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_function_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_function ($name, $object);
 }
@@ -240,7 +240,7 @@ sub _method_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_method_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_method ($name, $object);
 }
@@ -258,7 +258,7 @@ sub _record_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_record_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_record ($name, $object);
 }
@@ -276,7 +276,7 @@ sub _union_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_union_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_union ($name, $object);
 }
@@ -287,7 +287,7 @@ sub _union_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Union');
+  my $class = (ref $type or $type or 'Gir::Handlers::Union');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -323,7 +323,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/Varargs.pm b/tools/pm/Gir/Handlers/Varargs.pm
index e9c007d..640fcfb 100644
--- a/tools/pm/Gir/Handlers/Varargs.pm
+++ b/tools/pm/Gir/Handlers/Varargs.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::Varargs;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 
 
@@ -43,7 +43,7 @@ use Gir::Handlers::Common::Tags;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::Varargs');
+  my $class = (ref $type or $type or 'Gir::Handlers::Varargs');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
 
@@ -58,7 +58,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Handlers/VirtualMethod.pm b/tools/pm/Gir/Handlers/VirtualMethod.pm
index 4e002ac..dd2e506 100644
--- a/tools/pm/Gir/Handlers/VirtualMethod.pm
+++ b/tools/pm/Gir/Handlers/VirtualMethod.pm
@@ -1,6 +1,6 @@
 ## This file was generated by taghandlerwriter.pl script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ package Gir::Handlers::VirtualMethod;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::Base);
+use parent qw (Gir::Handlers::Common::Base);
 
 use Gir::Api::Attribute;
 use Gir::Api::Doc;
@@ -41,10 +41,10 @@ use Gir::Handlers::ReturnValue;
 ##
 ## private:
 ##
-sub _attribute_start ($$@)
+sub _attribute_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_attribute_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_attribute_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Attribute->new_with_params ($params);
 
@@ -52,10 +52,10 @@ sub _attribute_start ($$@)
   $self->_call_start_hooks ('attribute');
 }
 
-sub _doc_start ($$@)
+sub _doc_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_doc_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_doc_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Doc->new_with_params ($params);
 
@@ -63,10 +63,10 @@ sub _doc_start ($$@)
   $self->_call_start_hooks ('doc');
 }
 
-sub _parameters_start ($$@)
+sub _parameters_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_parameters_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_parameters_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::Parameters->new_with_params ($params);
 
@@ -74,10 +74,10 @@ sub _parameters_start ($$@)
   $self->_call_start_hooks ('parameters');
 }
 
-sub _return_value_start ($$@)
+sub _return_value_start ($$%)
 {
-  my ($self, $parser, @atts_vals) = @_;
-  my $params = Gir::Handlers::Common::Tags::get_return_value_params (@atts_vals);
+  my ($self, $parser, %atts_vals) = @_;
+  my $params = Gir::Handlers::Common::Tags::get_return_value_params %atts_vals;
   my $state = $parser->get_current_state;
   my $object = Gir::Api::ReturnValue->new_with_params ($params);
 
@@ -98,7 +98,7 @@ sub _attribute_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_attribute_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_attribute ($name, $object);
 }
@@ -116,7 +116,7 @@ sub _doc_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_doc_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_doc ($name, $object);
 }
@@ -134,7 +134,7 @@ sub _parameters_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_parameters_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_parameters ($name, $object);
 }
@@ -152,7 +152,7 @@ sub _return_value_end ($$)
 
   my $parent_object = $state->get_current_object;
   my $count = $parent_object->get_g_return_value_count;
-  my $name = Gir::Handlers::Common::Misc::get_object_name ($object, $count);
+  my $name = Gir::Handlers::Common::Misc::get_object_name $object, $count;
 
   $parent_object->add_g_return_value ($name, $object);
 }
@@ -163,7 +163,7 @@ sub _return_value_end ($$)
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Handlers::VirtualMethod');
+  my $class = (ref $type or $type or 'Gir::Handlers::VirtualMethod');
   my $start_store = Gir::Handlers::Common::Store->new
   ({
     'attribute' => \&_attribute_start,
@@ -187,7 +187,7 @@ sub new ($)
   };
   my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 1; # indicate proper module load.
diff --git a/tools/pm/Gir/Parser.pm b/tools/pm/Gir/Parser.pm
index b3e8587..6bd8b47 100644
--- a/tools/pm/Gir/Parser.pm
+++ b/tools/pm/Gir/Parser.pm
@@ -47,7 +47,7 @@ sub _print_error ($$$)
   {
     $msg .= '  ' . $tag . "\n";
   }
-  if (defined ($elem))
+  if (defined $elem)
   {
     $msg .= '  ' . $elem . "\n";
   }
@@ -59,9 +59,9 @@ sub _get_file_contents_as_utf8 ($)
   my $real_filename = shift;
   my $xml = IO::File->new ($real_filename, 'r');
 
-  unless (defined ($xml))
+  unless (defined $xml)
   {
-    #TODO: error;
+# TODO: error;
     print STDERR 'Could not open file `' . $real_filename . '\' for reading.' . "\n";
     exit 1;
   }
@@ -71,7 +71,7 @@ sub _get_file_contents_as_utf8 ($)
 
   unless ($xml->binmode (':raw'))
   {
-    #TODO: error;
+# TODO: error;
     print STDERR 'Calling binmode on `' . $real_filename . '\' failed.' . "\n";
     exit 1;
   }
@@ -80,8 +80,8 @@ sub _get_file_contents_as_utf8 ($)
 
   if ($bytes_read != $file_size)
   {
-    #TODO: error;
-    if (defined ($bytes_read))
+# TODO: error;
+    if (defined $bytes_read)
     {
       print STDERR 'Read ' . $bytes_read . ' bytes from ' . $real_filename . ', wanted: ' . $file_size . ' bytes.' . "\n";
     }
@@ -161,7 +161,7 @@ sub _start ($$$@)
 
   my $start_handlers = $handlers->get_start_handlers;
 
-  if (defined ($start_handlers))
+  if (defined $start_handlers)
   {
     if ($start_handlers->has_method_for ($elem))
     {
@@ -173,11 +173,12 @@ sub _start ($$$@)
         $state->push_handlers ($subhandlers);
         return $handlers->$method ($self, @atts_vals);
       }
-      # TODO: internal error - wrong implementation of get_subhandlers_for?
+# TODO: internal error - wrong implementation of
+# TODO continued: get_subhandlers_for?
       _print_error ($state, 'Internal error - wrong implementation of get_subhandlers_for?', $elem);
       exit 1;
     }
-    # TODO: unknown elem?
+# TODO: unknown elem?
     _print_error ($state, 'Unknown tag: ' . $elem . '.', $elem);
     exit 1;
   }
@@ -214,10 +215,10 @@ sub _end ($$$)
 ## private functions
 #
 
-sub new($)
+sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Parser');
+  my $class = (ref $type or $type or 'Gir::Parser');
   my $self =
   {
     'states_stack' => [],
@@ -231,7 +232,7 @@ sub new($)
     }
   };
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 sub _create_xml_parser ($)
@@ -239,7 +240,7 @@ sub _create_xml_parser ($)
   my $self = shift;
   my $xml_parser = XML::Parser::Expat->new;
 
-  #TODO: implement commented methods.
+# TODO: implement commented methods.
   $xml_parser->setHandlers
   (
 #    Char => sub { $self->_char (@_); },
@@ -258,7 +259,7 @@ sub parse_file ($$)
   my ($self, $filename) = @_;
   my $parsed_girs = $self->{'parsed_girs'};
 
-  unless (exists ($parsed_girs->{$filename}))
+  unless (exists $parsed_girs->{$filename})
   {
     my $real_filename = File::Spec->catfile (Gir::Config::get_girdir, $filename);
     my $xml_parser = $self->_create_xml_parser;
@@ -266,13 +267,13 @@ sub parse_file ($$)
     my $states_stack = $self->{'states_stack'};
 
     $parsed_girs->{$filename} = undef;
-    push (@{$states_stack}, $new_state);
+    push @{$states_stack}, $new_state;
 
     my $contents = _get_file_contents_as_utf8 ($real_filename);
 
     $xml_parser->parse ($contents);
     $xml_parser->release;
-    pop (@{$states_stack});
+    pop @{$states_stack};
     #print STDOUT 'Parsed ' . $real_filename . "\n";
   }
 }
diff --git a/tools/pm/Gir/Repositories.pm b/tools/pm/Gir/Repositories.pm
index aaac6f8..bf84f95 100644
--- a/tools/pm/Gir/Repositories.pm
+++ b/tools/pm/Gir/Repositories.pm
@@ -24,13 +24,13 @@ use warnings;
 sub new ($)
 {
   my $type = shift;
-  my $class = (ref ($type) or $type or 'Gir::Repositories');
+  my $class = (ref $type or $type or 'Gir::Repositories');
   my $self =
   {
     'repositories' => {}
   };
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 sub add_repository ($$)
diff --git a/tools/pm/Gir/State.pm b/tools/pm/Gir/State.pm
index 8f7ba00..64236e1 100644
--- a/tools/pm/Gir/State.pm
+++ b/tools/pm/Gir/State.pm
@@ -21,7 +21,7 @@ package Gir::State;
 use strict;
 use warnings;
 
-use parent qw(Gir::Handlers::Common::State);
+use parent qw (Gir::Handlers::Common::State);
 
 use Gir::Handlers::TopLevel;
 
@@ -31,7 +31,7 @@ use Gir::Handlers::TopLevel;
 sub new ($$$)
 {
   my ($type, $parsed_file, $xml_parser) = @_;
-  my $class = (ref ($type) or $type or 'Gir::State');
+  my $class = (ref $type or $type or 'Gir::State');
   my $self = $class->SUPER::new;
   my $toplevel_handler = Gir::Handlers::TopLevel->new;
 
@@ -39,7 +39,7 @@ sub new ($$$)
   $self->{'parsed_file'} = $parsed_file;
   $self->{'xml_parser'} = $xml_parser;
 
-  return bless ($self, $class);
+  return bless $self, $class;
 }
 
 sub push_handlers ($$)
@@ -47,7 +47,7 @@ sub push_handlers ($$)
   my ($self, $handlers) = @_;
   my $handlers_stack = $self->{'handlers_stack'};
 
-  push (@{$handlers_stack}, $handlers);
+  push @{$handlers_stack}, $handlers;
 }
 
 sub pop_handlers ($)
@@ -55,7 +55,7 @@ sub pop_handlers ($)
   my $self = shift;
   my $handlers_stack = $self->{'handlers_stack'};
 
-  pop (@{$handlers_stack});
+  pop @{$handlers_stack};
 }
 
 sub get_current_handlers ($)
diff --git a/tools/pm/taghandlerwriter.pl b/tools/pm/taghandlerwriter.pl
index 9a21273..879213f 100755
--- a/tools/pm/taghandlerwriter.pl
+++ b/tools/pm/taghandlerwriter.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 # -*- mode: perl; perl-indent-level: 2; indent-tabs-mode: nil -*-
-## Copyright 2011 Krzesimir Nowak
+## Copyright 2011, 2012 Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -29,12 +29,20 @@ use File::Spec;
 use Getopt::Long;
 use IO::File;
 
+sub year_seq ()
+{
+  my $first_year = 2011;
+  my $last_year = (localtime time)[5] + 1900;
+
+  return join ', ', $first_year .. $last_year;
+}
+
 my $glob_magic_toplevel = 'top-level';
 my $glob_script_name = (File::Spec->splitpath ($0))[2];
 my $glob_header =
 '## This file was generated by ' . $glob_script_name . ' script.
 ##
-## Copyright 2011 Krzesimir Nowak
+## Copyright ' . year_seq . ' Krzesimir Nowak
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
@@ -136,7 +144,7 @@ sub get_attributes_from_line ($$)
   {
     if ($entry =~ /^\[/)
     {
-      if (defined ($name) or defined ($mode) or defined ($value))
+      if (defined $name or defined $mode or defined $value)
       {
         print STDERR nl ('`' . $line_pair->[1] . '\' at line ' . $line_pair->[0] . ': Badly formed attributes - probably previous attribute triplet is not closed.');
         exit 1;
@@ -146,7 +154,7 @@ sub get_attributes_from_line ($$)
     }
     elsif ($entry =~ /\]$/)
     {
-      unless (defined ($mode))
+      unless (defined $mode)
       {
         print STDERR nl ('`' . $line_pair->[1] . '\' at line ' . $line_pair->[0] . ': Badly formed attributes - no mode defined.');
         exit 1;
@@ -166,7 +174,7 @@ sub get_attributes_from_line ($$)
         'default_value' => $value
       };
 
-      push (@attributes, $attribute);
+      push @attributes, $attribute;
       $name = undef;
       $mode = undef;
       $value = undef;
@@ -390,7 +398,7 @@ sub write_tag_handlers ($$$)
   my $tags_handlers_name = File::Spec->catfile ($output_dir, 'Common', $pm . '.pm');
   my $tags_handlers_fd = IO::File->new ($tags_handlers_name, 'w');
 
-  unless (defined ($tags_handlers_fd))
+  unless (defined $tags_handlers_fd)
   {
     print STDERR nl ('Failed to open ' . $tags_handlers_name . ' for writing.');
     exit 1;
@@ -426,7 +434,7 @@ sub write_tag_handlers ($$$)
       my $att_name = $att->{'name'};
       my $default_value = $att->{'default_value'};
 
-      unless (defined ($default_value))
+      unless (defined $default_value)
       {
         $default_value = 'undef';
       }
@@ -435,47 +443,45 @@ sub write_tag_handlers ($$$)
 
       if ($att->{'mandatory'})
       {
-        push (@mandatory_atts, $pair);
+        push @mandatory_atts, $pair;
       }
       else
       {
-        push (@optional_atts, $pair);
+        push @optional_atts, $pair;
       }
     }
 
-    my $handler .= nl ('sub get_' . func_from_tag ($tag) . '_params (@)') .
+    my $handler .= nl ('sub get_' . func_from_tag ($tag) . '_params (%)') .
                    nl ('{') .
                    nl ('  return ' . $package_prefix . '::Common::Misc::extract_values') .
-                   nl ('  (') .
-                   nl ('    [');
+                   nl ('  [');
 
     {
       my @att_lines = ();
 
       foreach my $att (@mandatory_atts)
       {
-        push (@att_lines, '      [\'' . $att->[0] . '\', ' . $att->[1] . ']');
+        push @att_lines, '    [\'' . $att->[0] . '\', ' . $att->[1] . ']';
       }
-      $handler .= nl (join (nl (','), @att_lines)) .
-                  nl ('    ],') .
-                  nl ('    [');
+      $handler .= nl (join ((nl ','), @att_lines)) .
+                  nl ('  ],') .
+                  nl ('  [');
       @att_lines = ();
 
       foreach my $att (@optional_atts)
       {
-        push (@att_lines, '      [\'' . $att->[0] . '\', ' . $att->[1] . ']');
+        push @att_lines, '    [\'' . $att->[0] . '\', ' . $att->[1] . ']';
       }
-      $handler .= nl (join (nl (','), @att_lines)) .
-                  nl ('    ],') .
-                  nl ('    \\ _') .
-                  nl ('  );') .
+      $handler .= nl (join ((nl ','), @att_lines)) .
+                  nl ('  ],') .
+                  nl ('  @_;') .
                   nl ('}') .
                   nl ();
-      push (@handlers, $handler);
+      push @handlers, $handler;
     }
   }
 
-  $contents .= nl (join (nl (), sort (@handlers))) .
+  $contents .= nl (join nl, sort (@handlers)) .
                nl ('1; # indicate proper module load.');
   $tags_handlers_fd->print ($contents);
   $tags_handlers_fd->close;
@@ -491,7 +497,7 @@ sub module_from_tag ($)
   # - changes 'foo' to 'Foo', 'BAR' to 'Bar' and 'bAz' to 'Baz'
   # - joins 'Foo', 'Bar' and 'Baz' into one string 'FooBarBaz'
   # - returns the joined string
-  return join ('', map { ucfirst lc } split (/\W+/, shift));
+  return join '', map { ucfirst lc } (split /\W+/, shift);
 }
 
 ##
@@ -508,7 +514,7 @@ sub write_tag_modules ($$$$)
     my $tags_module_name = File::Spec->catfile ($output_dir, $pm . '.pm');
     my $tags_module_fd = IO::File->new ($tags_module_name, 'w');
 
-    unless (defined ($tags_module_fd))
+    unless (defined $tags_module_fd)
     {
       print STDERR nl ('Failed to open ' . $tags_module_name . ' for writing.');
       exit 1;
@@ -535,10 +541,10 @@ sub write_tag_modules ($$$$)
       my $kid_end = '_' . $kid_func . '_end';
       my $api_use = 'use ' . $kid_object . ';';
       my $handler_use = 'use ' . $kid_module . ';';
-      my $start_body = nl ('sub ' . $kid_start . ' ($$@)') .
+      my $start_body = nl ('sub ' . $kid_start . ' ($$%)') .
                        nl ('{') .
-                       nl ('  my ($self, $parser, @atts_vals) = @_;') .
-                       nl ('  my $params = ' . $package_prefix . '::Common::Tags::get_' . $kid_func . '_params (@atts_vals);') .
+                       nl ('  my ($self, $parser, %atts_vals) = @_;') .
+                       nl ('  my $params = ' . $package_prefix . '::Common::Tags::get_' . $kid_func . '_params %atts_vals;') .
                        nl ('  my $state = $parser->get_current_state;') .
                        nl ('  my $object = ' . $kid_object . '->new_with_params ($params);') .
                        nl () .
@@ -558,7 +564,7 @@ sub write_tag_modules ($$$$)
                      nl () .
                      nl ('  my $parent_object = $state->get_current_object;') .
                      nl ('  my $count = $parent_object->get_g_' . $kid_func . '_count;') .
-                     nl ('  my $name = ' . $package_prefix . '::Common::Misc::get_object_name ($object, $count);') .
+                     nl ('  my $name = ' . $package_prefix . '::Common::Misc::get_object_name $object, $count;') .
                      nl () .
                      nl ('  $parent_object->add_g_' . $kid_func . ' ($name, $object);') .
                      nl ('}');
@@ -566,13 +572,13 @@ sub write_tag_modules ($$$$)
       my $end_store_member = '    \'' . $kid . '\' => \\&' . $kid_end;
       my $subhandler = '    \'' . $kid . '\' => \'' . $kid_module . '\'';
 
-      push (@api_uses, $api_use);
-      push (@handler_uses, $handler_use);
-      push (@start_bodies, $start_body);
-      push (@end_bodies, $end_body);
-      push (@start_store, $start_store_member);
-      push (@end_store, $end_store_member);
-      push (@subhandlers, $subhandler);
+      push @api_uses, $api_use;
+      push @handler_uses, $handler_use;
+      push @start_bodies, $start_body;
+      push @end_bodies, $end_body;
+      push @start_store, $start_store_member;
+      push @end_store, $end_store_member;
+      push @subhandlers, $subhandler;
     }
 
     my $contents = nl ($glob_header) .
@@ -582,43 +588,43 @@ sub write_tag_modules ($$$$)
                    nl ('use strict;') .
                    nl ('use warnings;') .
                    nl () .
-                   nl ('use parent qw(' . $package_prefix . '::Common::Base);') .
+                   nl ('use parent qw (' . $package_prefix . '::Common::Base);') .
                    nl () .
-                   nl (join (nl (), @api_uses)) .
+                   nl (join nl, @api_uses) .
                    nl () .
                    nl ('use ' . $package_prefix . '::Common::Misc;') .
                    nl ('use ' . $package_prefix . '::Common::Store;') .
                    nl ('use ' . $package_prefix . '::Common::Tags;') .
                    nl () .
-                   nl (join (nl (), @handler_uses)) .
+                   nl (join nl, @handler_uses) .
                    nl () .
                    nl ('##') .
                    nl ('## private:') .
                    nl ('##') .
-                   nl (join (nl (), @start_bodies)) .
-                   nl (join (nl (), @end_bodies)) .
+                   nl (join nl, @start_bodies) .
+                   nl (join nl, @end_bodies) .
                    nl ('##') .
                    nl ('## public:') .
                    nl ('##') .
                    nl ('sub new ($)') .
                    nl ('{') .
                    nl ('  my $type = shift;') .
-                   nl ('  my $class = (ref ($type) or $type or \'' . $package_name . '\');') .
+                   nl ('  my $class = (ref $type or $type or \'' . $package_name . '\');') .
                    nl ('  my $start_store = ' . $package_prefix . '::Common::Store->new') .
                    nl ('  ({') .
-                   nl (join (nl (','), @start_store)) .
+                   nl (join ((nl ','), @start_store)) .
                    nl ('  });') .
                    nl ('  my $end_store = ' . $package_prefix . '::Common::Store->new') .
                    nl ('  ({') .
-                   nl (join (nl (','), @end_store)) .
+                   nl (join ((nl ','), @end_store)) .
                    nl ('  });') .
                    nl ('  my $subhandlers =') .
                    nl ('  {') .
-                   nl (join (nl(','), @subhandlers)) .
+                   nl (join ((nl ','), @subhandlers)) .
                    nl ('  };') .
                    nl ('  my $self = $class->SUPER::new ($start_store, $end_store, $subhandlers);') .
                    nl () .
-                   nl ('  return bless ($self, $class);') .
+                   nl ('  return bless $self, $class;') .
                    nl ('}') .
                    nl () .
                    nl ('1; # indicate proper module load.');
@@ -641,7 +647,7 @@ sub write_api_objects ($$$)
     my $api_module_name = File::Spec->catfile ($output_dir, $pm . '.pm');
     my $api_module_fd = IO::File->new ($api_module_name, 'w');
 
-    unless (defined ($api_module_fd))
+    unless (defined $api_module_fd)
     {
       print STDERR nl ('Failed to open ' . $api_module_name . ' for writing.');
       exit 1;
@@ -690,12 +696,12 @@ sub write_api_objects ($$$)
                                     nl ('  $self->_add_member_to_group (\'' . $kid_group .'\', $member_name, $member);') .
                                     nl ('}');
 
-      push (@uses, $use);
-      push (@groups, $group);
-      push (@get_group_member_by_name_subs, $get_group_member_by_name_sub);
-      push (@get_group_member_by_index_subs, $get_group_member_by_index_sub);
-      push (@get_group_member_count_subs, $get_group_member_count_sub);
-      push (@add_member_to_group_subs, $add_member_to_group_sub);
+      push @uses, $use;
+      push @groups, $group;
+      push @get_group_member_by_name_subs, $get_group_member_by_name_sub;
+      push @get_group_member_by_index_subs, $get_group_member_by_index_sub;
+      push @get_group_member_count_subs, $get_group_member_count_sub;
+      push @add_member_to_group_subs, $add_member_to_group_sub;
     }
 
     my $atts = $tag_desc->{'attributes'};
@@ -723,12 +729,12 @@ sub write_api_objects ($$$)
                               nl () .
                               nl ('  $self->_set_attribute (\'' . $attribute_name . '\', $value);') .
                               nl ('}');
-      my $set_param = '  $self->' . $set_attribute_sub_name . '($params->{\'' . $name . '\'});';
+      my $set_param = '  $self->' . $set_attribute_sub_name . ' ($params->{\'' . $name . '\'});';
 
-      push (@attributes, $attribute);
-      push (@get_attribute_subs, $get_attribute_sub);
-      push (@set_attribute_subs, $set_attribute_sub);
-      push (@set_params, $set_param);
+      push @attributes, $attribute;
+      push @get_attribute_subs, $get_attribute_sub;
+      push @set_attribute_subs, $set_attribute_sub;
+      push @set_params, $set_param;
     }
 
     my $contents = nl ($glob_header) .
@@ -738,49 +744,49 @@ sub write_api_objects ($$$)
                    nl ('use strict;') .
                    nl ('use warnings;') .
                    nl () .
-                   nl ('use parent qw(' . $package_prefix . '::Common::Base);') .
+                   nl ('use parent qw (' . $package_prefix . '::Common::Base);') .
                    nl () .
-                   nl (join (nl (), @uses)) .
+                   nl (join nl, @uses) .
                    nl () .
                    nl ('sub new ($)') .
                    nl ('{') .
                    nl ('  my $type = shift;') .
-                   nl ('  my $class = (ref ($type) or $type or \'' . $package_name . '\');') .
+                   nl ('  my $class = (ref $type or $type or \'' . $package_name . '\');') .
                    nl ('  my $groups =') .
                    nl ('  [') .
-                   nl (join (nl (','), @groups)) .
+                   nl (join ((nl ','), @groups)) .
                    nl ('  ];') .
                    nl ('  my $attributes =') .
                    nl ('  [') .
-                   nl (join (nl (','), @attributes)) .
+                   nl (join ((nl ','), @attributes)) .
                    nl ('  ];') .
                    nl ('  my $self = $class->SUPER::new ($groups, $attributes);') .
                    nl () .
-                   nl ('  bless ($self, $class);') .
+                   nl ('  bless $self, $class;') .
                    nl ('  return $self;') .
                    nl ('}') .
                    nl () .
                    nl ('sub new_with_params ($$)') .
                    nl ('{') .
                    nl ('  my ($type, $params) = @_;') .
-                   nl ('  my $self = ' . $package_name . '::new ($type);') .
+                   nl ('  my $self = ' . $package_name . '::new $type;') .
                    nl () .
-                   nl (join (nl (), @set_params)) .
+                   nl (join nl, @set_params) .
                    nl () .
                    nl ('  return $self;') .
                    nl ('}') .
                    nl () .
-                   nl (join (nl (), @get_group_member_by_name_subs)) .
+                   nl (join nl, @get_group_member_by_name_subs) .
                    nl () .
-                   nl (join (nl (), @get_group_member_by_index_subs)) .
+                   nl (join nl, @get_group_member_by_index_subs) .
                    nl () .
-                   nl (join (nl (), @get_group_member_count_subs)) .
+                   nl (join nl, @get_group_member_count_subs) .
                    nl () .
-                   nl (join (nl (), @add_member_to_group_subs)) .
+                   nl (join nl, @add_member_to_group_subs) .
                    nl () .
-                   nl (join (nl (), @get_attribute_subs)) .
+                   nl (join nl, @get_attribute_subs) .
                    nl () .
-                   nl (join (nl (), @set_attribute_subs)) .
+                   nl (join nl, @set_attribute_subs) .
                    nl () .
                    nl ('1; # indicate proper module load.');
 
@@ -811,7 +817,7 @@ sub write_docs ($)
   my $docs_name = 'gi-gir-reference.xml';
   my $docs_fd = IO::File->new ($docs_name, 'w');
 
-  unless (defined ($docs_fd))
+  unless (defined $docs_fd)
   {
     print STDERR nl ('Failed to open ' . $docs_name . ' for writing.');
     exit 1;
@@ -843,7 +849,7 @@ sub write_docs ($)
     {
       my $parent_link = '      <link linkend="gi-gir-' . xml_from_tag ($parent) . '">' . $parent . '</link>';
 
-      push (@parent_links, $parent_link);
+      push @parent_links, $parent_link;
     }
 
     my $refsect = nl ('    <refsect2 id="gi-gir-' . xml_from_tag ($tag) . '">') .
@@ -860,10 +866,10 @@ sub write_docs ($)
       $parent_string = '      Parent node:';
     }
 
-    if (defined ($parent_string))
+    if (defined $parent_string)
     {
       $refsect += nl ($parent_string) .
-                  nl (join (nl (','), @parent_links) . '.');
+                  nl (join ((nl ','), @parent_links) . '.');
     }
 
     my $kids = $desc->{'kids'};
@@ -873,13 +879,13 @@ sub write_docs ($)
     {
       my $kid_link = '      <link linkend="gi-gir-' . xml_from_tag ($kid) . '">' . $kid . '</link>';
 
-      push (@kid_links, $kid_link);
+      push @kid_links, $kid_link;
     }
 
     if (@{$kids})
     {
       $refsect += nl ('      Possible children:') .
-                  nl (join (nl (','), @kid_links) . '.');
+                  nl (join ((nl ','), @kid_links) . '.');
     }
 
     my $attributes = $desc->{'attributes'};
@@ -899,23 +905,23 @@ sub write_docs ($)
 
       if ($att->{'mandatory'})
       {
-        push (@mandatory_atts, $att_string);
+        push @mandatory_atts, $att_string;
       }
       else
       {
-        push (@optional_atts, $att_string);
+        push @optional_atts, $att_string;
       }
     }
 
     if (@mandatory_atts)
     {
       $refsect += nl ('      Mandatory attributes (mandatory value when such exists):') .
-                  nl (join (nl (','), @mandatory_atts) . '.');
+                  nl (join ((nl ','), @mandatory_atts) . '.');
     }
     if (@optional_atts)
     {
       $refsect += nl ('      Optional attributes (default value when attribute is not specified):') .
-                  nl (join (nl (','), @optional_atts) . '.');
+                  nl (join ((nl ','), @optional_atts) . '.');
     }
 
     $refsect += nl ('      <example>') .
@@ -925,10 +931,10 @@ sub write_docs ($)
                 nl ('      </example>') .
                 nl () .
                 nl ('    </refsect2>');
-    push (@refsects, $refsect);
+    push @refsects, $refsect;
   }
 
-  $contents .= nl (join (nl (), sort (@refsects))) .
+  $contents .= nl (join nl, sort (@refsects)) .
                nl ('</chapter>');
   $docs_fd->print ($contents);
   $docs_fd->close;
@@ -938,7 +944,7 @@ sub write_docs ($)
 ## This is where script begins - this function parses parameters, then parses
 ## file given as parameter and outputs some files.
 ##
-sub main()
+sub main ()
 {
   my $output_dir = undef;
   my $package_prefix = undef; # Gir::Handlers



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]