diff --git a/bin/account-manager-client.pl b/bin/account-manager-client.pl
index ce560654fe0b56e5582790595abff884433d958d..2c3d7fc1ca03ad2569f5ed618d3a60acc6f1fef5 100755
--- a/bin/account-manager-client.pl
+++ b/bin/account-manager-client.pl
@@ -22,7 +22,7 @@ use IdPAccountManager::AuthenticationToken;
 
 my %options;
 unless (
-    &GetOptions(
+    GetOptions(
         \%options,                  'add_test_account',
         'account_profile=s',        'sp_entityid=s',
         'list_test_accounts',       'parse_federation_metadata',
@@ -131,7 +131,7 @@ if ($options{'add_test_account'}) {
 
     ## List SAML entities
     printf "Hashref representing the metadata:\n";
-    &IdPAccountManager::Tools::dump_var(
+    IdPAccountManager::Tools::dump_var(
         $federation_metadata->{'federation_metadata_as_hashref'},
         0, \*STDOUT);
 
@@ -298,7 +298,7 @@ if ($options{'add_test_account'}) {
     }
 
     unless (
-        &IdPAccountManager::Tools::mail_notice(
+        IdPAccountManager::Tools::mail_notice(
             'template' => 'templates/mail/notification_generic_error.tt2.eml',
             'data'     => {},
             'to'       => $options{'email_address'}
diff --git a/bin/account-manager-web.pl b/bin/account-manager-web.pl
index 50080aebc5abcd6cfe74f5aafc231a1f50390653..214baf0ff68dbde14815e8f3845e53d4ca55cb57 100755
--- a/bin/account-manager-web.pl
+++ b/bin/account-manager-web.pl
@@ -64,7 +64,7 @@ package WebRequest;
 sub new {
     my $pkg     = shift;
     my $request = {};
-    &IdPAccountManager::Tools::do_log('info', "");
+    IdPAccountManager::Tools::do_log('info', "");
 
     my $http_query = new CGI;
 
@@ -87,12 +87,12 @@ sub new {
     $request->{'param_out'}{'conf'}    = \%Conf::global;
 
     ## Dumping input data
-#open TMP, ">/tmp/account_manager.in"; &IdPAccountManager::Tools::dump_var($request->{'param_in'}, 0, \*TMP); close TMP;
+#open TMP, ">/tmp/account_manager.in"; IdPAccountManager::Tools::dump_var($request->{'param_in'}, 0, \*TMP); close TMP;
 
     ## Clean input vars
     foreach my $key (keys %{ $request->{'param_in'} }) {
 
-#&IdPAccountManager::Tools::do_log('trace', "PARAM_ENTREE: %s=%s", $key, $request->{'param_in'}{$key});
+#IdPAccountManager::Tools::do_log('trace', "PARAM_ENTREE: %s=%s", $key, $request->{'param_in'}{$key});
 
         ## Removing all ^M (0D)
         $request->{'param_in'}{$key} =~ s/\r//g;
@@ -108,7 +108,7 @@ sub new {
         ## Usefull to have sementicless values in submit forms
         if ($key =~ /^action_(\w+)$/) {
 
-            #&IdPAccountManager::Tools::do_log('trace', "ACTION $key");
+            #IdPAccountManager::Tools::do_log('trace', "ACTION $key");
             $request->{'param_in'}{'action'} = $1;
         }
     }
@@ -118,7 +118,7 @@ sub new {
         $request->{'action'} = $request->{'param_in'}{'action'};
     } else {
         ## Default action
-        &IdPAccountManager::Tools::do_log('info', "Default action");
+        IdPAccountManager::Tools::do_log('info', "Default action");
         $request->{'action'} = 'home';
     }
 
@@ -130,7 +130,7 @@ sub new {
 ## Execute a web request
 sub execute {
     my $self = shift;
-    &IdPAccountManager::Tools::do_log('debug', "");
+    IdPAccountManager::Tools::do_log('debug', "");
 
     my $status;
 
@@ -142,7 +142,7 @@ sub execute {
         {
             unless ($self->{'param_in'}{$key} =~ /^$format{$key}$/) {
                 push @{ $self->{'param_out'}{'errors'} }, "format_$key";
-                &IdPAccountManager::Tools::do_log('error',
+                IdPAccountManager::Tools::do_log('error',
                     "Incorrect parameter format : $key");
                 return undef;
             }
@@ -163,7 +163,7 @@ sub execute {
         } else {
             ## Inknown action
             push @{ $self->{'param_out'}{'errors'} }, "unknown_action";
-            &IdPAccountManager::Tools::do_log('error', "Unknown action '%s'",
+            IdPAccountManager::Tools::do_log('error', "Unknown action '%s'",
                 $self->{'action'});
 
         }
@@ -178,10 +178,10 @@ sub execute {
 ## Return HTML content
 sub respond {
     my $self = shift;
-    &IdPAccountManager::Tools::do_log('debug', "");
+    IdPAccountManager::Tools::do_log('debug', "");
 
     ## Dump output data
-#open TMP, ">/tmp/account_registry.out"; &IdPAccountManager::Tools::dump_var($self->{'param_out'}, 0, \*TMP); close TMP;
+#open TMP, ">/tmp/account_registry.out"; IdPAccountManager::Tools::dump_var($self->{'param_out'}, 0, \*TMP); close TMP;
 
     ## Enable dumping off all variables in web pages
     #$self->{'param_out'}{'dump'} =  $self->{'param_out'};
@@ -189,7 +189,7 @@ sub respond {
     ## Automatic pass object entries to the output hash
     foreach my $key (keys %{$self}) {
 
-        #&IdPAccountManager::Tools::do_log('trace', "Passing $key");
+        #IdPAccountManager::Tools::do_log('trace', "Passing $key");
         $self->{'param_out'}{$key} ||= $self->{$key}
           unless ($key eq 'param_out');
     }
@@ -197,7 +197,7 @@ sub respond {
     ## An action may redirect to an external URL
     if ($self->{'url_redirection'}) {
 
-#&IdPAccountManager::Tools::do_log('trace', "URL Redirect : $self->{'url_redirection'}");
+#IdPAccountManager::Tools::do_log('trace', "URL Redirect : $self->{'url_redirection'}");
         printf "Location: %s\n\n", $self->{'url_redirection'};
 
     } else {
@@ -235,7 +235,7 @@ sub respond {
 
         unless ($tt2->process($template, $self->{'param_out'}, \*STDOUT)) {
             printf "Content-type: text/plain\n\n Error: %s", $tt2->error();
-            &IdPAccountManager::Tools::do_log('error', "Web parser error : %s",
+            IdPAccountManager::Tools::do_log('error', "Web parser error : %s",
                 $tt2->error());
         }
     }
@@ -251,7 +251,7 @@ sub respond {
     ## Mail notification of admins about the error
     if (@errors_admin) {
         $self->{'param_out'}{'subject'} = 'Error notification - web interface';
-        &IdPAccountManager::Tools::mail_notice(
+        IdPAccountManager::Tools::mail_notice(
             'template' => 'templates/mail/notification_generic_error.tt2.eml',
             'data'     => $self->{'param_out'}
         );
@@ -261,7 +261,7 @@ sub respond {
 ## Return the list of known SPs first
 sub req_account_wizard {
     my $self = shift;
-    &IdPAccountManager::Tools::do_log('info', "");
+    IdPAccountManager::Tools::do_log('info', "");
 
     my $federation_metadata = new IdPAccountManager::SAMLMetadata;
     unless (
@@ -272,14 +272,14 @@ sub req_account_wizard {
       )
     {
         push @{ $self->{'param_out'}{'errors'} }, "internal";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to load federation metadata : $!");
         return undef;
     }
 
     unless ($federation_metadata->parse()) {
         push @{ $self->{'param_out'}{'errors'} }, "internal";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to parse federation metadata : $!");
         return undef;
     }
@@ -294,11 +294,11 @@ sub req_account_wizard {
 ## Sample URL : https://dev-edugain.renater.fr/accountmanager?action=select_sp&sp_entityid=http%3A%2F%2Fsp.lat.csc.fi
 sub req_select_sp {
     my $self = shift;
-    &IdPAccountManager::Tools::do_log('info', "");
+    IdPAccountManager::Tools::do_log('info', "");
 
     unless ($self->{'param_in'}{'sp_entityid'}) {
         push @{ $self->{'param_out'}{'errors'} }, "missing_sp_entityid";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Missing parameter sp_entityid");
         return undef;
     }
@@ -312,7 +312,7 @@ sub req_select_sp {
       )
     {
         push @{ $self->{'param_out'}{'errors'} }, "internal";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to load federation metadata : $!");
         return undef;
     }
@@ -324,7 +324,7 @@ sub req_select_sp {
       )
     {
         push @{ $self->{'param_out'}{'errors'} }, "internal";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to parse federation metadata : $!");
         return undef;
     }
@@ -334,7 +334,7 @@ sub req_select_sp {
         entityid => $self->{'param_in'}{'sp_entityid'});
 
     ## Prepare data
-#open TMP, ">/tmp/account_manager_metadata.dump"; &IdPAccountManager::Tools::dump_var($federation_metadata->{'federation_metadata_as_hashref'}[0], 0, \*TMP); close TMP;
+#open TMP, ">/tmp/account_manager_metadata.dump"; IdPAccountManager::Tools::dump_var($federation_metadata->{'federation_metadata_as_hashref'}[0], 0, \*TMP); close TMP;
     my $sp_metadata_as_hashref =
       $federation_metadata->{'federation_metadata_as_hashref'}[0];
     my @contacts;
@@ -355,7 +355,7 @@ sub req_select_sp {
             foreach
               my $lang (keys %{ $sp_metadata_as_hashref->{'display_name'} })
             {
-#&IdPAccountManager::Tools::do_log('TRACE', "Display name(%s): %s", $lang, $sp_metadata_as_hashref->{'display_name'}{$lang});
+#IdPAccountManager::Tools::do_log('TRACE', "Display name(%s): %s", $lang, $sp_metadata_as_hashref->{'display_name'}{$lang});
                 $display_name =
                   $sp_metadata_as_hashref->{'display_name'}{$lang};
                 last;
@@ -377,7 +377,7 @@ sub req_select_sp {
         );
         unless (defined $service_provider) {
             push @{ $self->{'param_out'}{'errors'} }, "internal";
-            &IdPAccountManager::Tools::do_log('error',
+            IdPAccountManager::Tools::do_log('error',
                 "Failed to create serviceprovider object");
             return undef;
         }
@@ -385,7 +385,7 @@ sub req_select_sp {
 
     unless ($service_provider->save()) {
         push @{ $self->{'param_out'}{'errors'} }, "internal";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to save serviceprovider object");
         return undef;
     }
@@ -401,18 +401,18 @@ sub req_select_sp {
 ## Sample call : dev-edugain.renater.fr/accountmanager?action=generate_token&style=nobanner&sp_entityid=https%3A%2F%2Fsourcesup.cru.fr%2Fshibboleth&email_address=support%40renater.fr
 sub req_generate_token {
     my $self = shift;
-    &IdPAccountManager::Tools::do_log('info', "");
+    IdPAccountManager::Tools::do_log('info', "");
 
     unless ($self->{'param_in'}{'sp_entityid'}) {
         push @{ $self->{'param_out'}{'errors'} }, "missing_sp_entityid";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Missing parameter sp_entityid");
         return undef;
     }
 
     unless ($self->{'param_in'}{'email_address'}) {
         push @{ $self->{'param_out'}{'errors'} }, "email_address";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Missing parameter email_address");
         return undef;
     }
@@ -424,7 +424,7 @@ sub req_generate_token {
     # Try loading DB object first
     unless ($service_provider->load(speculative => 1)) {
         push @{ $self->{'param_out'}{'errors'} }, "internal";
-        &IdPAccountManager::Tools::do_log(
+        IdPAccountManager::Tools::do_log(
             'error',
             "Failed to load SP with entityid '%s'",
             $self->{'param_in'}{'sp_entityid'}
@@ -436,7 +436,7 @@ sub req_generate_token {
     unless ($service_provider->is_contact($self->{'param_in'}{'email_address'}))
     {
         push @{ $self->{'param_out'}{'errors'} }, "internal";
-        &IdPAccountManager::Tools::do_log(
+        IdPAccountManager::Tools::do_log(
             'error',
             "Requested a token for %s for an unautorized address '%s'",
             $self->{'param_in'}{'sp_entityid'},
@@ -451,7 +451,7 @@ sub req_generate_token {
     );
     unless (defined $authentication_token) {
         push @{ $self->{'param_out'}{'errors'} }, "internal";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to create authentication token");
         return undef;
     }
@@ -460,7 +460,7 @@ sub req_generate_token {
     if ($authentication_token->load()) {
         unless ($authentication_token->delete()) {
             push @{ $self->{'param_out'}{'errors'} }, "internal";
-            &IdPAccountManager::Tools::do_log(
+            IdPAccountManager::Tools::do_log(
                 'error',
                 "Failed to delete previous authentication token with ID %s",
                 $authentication_token->get('id')
@@ -474,7 +474,7 @@ sub req_generate_token {
         );
         unless (defined $authentication_token) {
             push @{ $self->{'param_out'}{'errors'} }, "internal";
-            &IdPAccountManager::Tools::do_log('error',
+            IdPAccountManager::Tools::do_log('error',
                 "Failed to create authentication token");
             return undef;
         }
@@ -482,7 +482,7 @@ sub req_generate_token {
 
     unless ($authentication_token->save()) {
         push @{ $self->{'param_out'}{'errors'} }, "internal";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to save authentication token");
         return undef;
     }
@@ -495,13 +495,13 @@ sub req_generate_token {
     $self->{'param_out'}{'to'}          = $self->{'param_in'}{'email_address'};
 
     ## Send the challenge email with the token
-    &IdPAccountManager::Tools::mail_notice(
+    IdPAccountManager::Tools::mail_notice(
         'template' => 'templates/mail/send_authentication_token.tt2.eml',
         'to'       => $self->{'param_in'}{'email_address'},
         'data'     => $self->{'param_out'}
     );
 
-    &IdPAccountManager::Tools::do_log(
+    IdPAccountManager::Tools::do_log(
         'info',
         "Token send to %s for sp_entityid=%s;token=%s",
         $self->{'param_in'}{'email_address'},
@@ -517,11 +517,11 @@ sub req_generate_token {
 ## Sample call : dev-edugain.renater.fr/accountmanager?action=validate_token&style=nobanner&sp_entityid=https%3A%2F%2Fsourcesup.cru.fr%2Fshibboleth&authentication_token=c1cfecb51ea40d39a695
 sub req_validate_token {
     my $self = shift;
-    &IdPAccountManager::Tools::do_log('info', "");
+    IdPAccountManager::Tools::do_log('info', "");
 
     unless ($self->{'param_in'}{'sp_entityid'}) {
         push @{ $self->{'param_out'}{'errors'} }, "missing_sp_entityid";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Missing parameter sp_entityid");
         return undef;
     }
@@ -529,7 +529,7 @@ sub req_validate_token {
     unless ($self->{'param_in'}{'authentication_token'}) {
         push @{ $self->{'param_out'}{'errors'} },
           "missing_authentication_token";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Missing parameter authentication_token");
         return undef;
     }
@@ -539,7 +539,7 @@ sub req_validate_token {
 
     unless ($authentication_token->load()) {
         push @{ $self->{'param_out'}{'errors'} }, "wrong_token";
-        &IdPAccountManager::Tools::do_log(
+        IdPAccountManager::Tools::do_log(
             'error',
             "Failed to validate authentication token %s for sp_entityid %s",
             $self->{'param_in'}{'authentication_token'},
@@ -552,7 +552,7 @@ sub req_validate_token {
         $self->{'param_in'}{'sp_entityid'})
     {
         push @{ $self->{'param_out'}{'errors'} }, "wrong_token_for_sp";
-        &IdPAccountManager::Tools::do_log(
+        IdPAccountManager::Tools::do_log(
             'error',
             "Authentication token %s cannot be used for SP with entityid %s",
             $self->{'param_in'}{'authentication_token'},
@@ -563,7 +563,7 @@ sub req_validate_token {
 
     ## delete the token
     unless ($authentication_token->delete()) {
-        &IdPAccountManager::Tools::do_log(
+        IdPAccountManager::Tools::do_log(
             'error',
             "Failed to delete authentication token %s",
             $self->{'param_in'}{'authentication_token'}
@@ -572,12 +572,12 @@ sub req_validate_token {
 
     ## create test accounts
     my @test_accounts =
-      &IdPAccountManager::TestAccount::create_test_accounts_for_sp(
+      IdPAccountManager::TestAccount::create_test_accounts_for_sp(
         sp_entityid => $self->{'param_in'}{'sp_entityid'});
 
     unless (@test_accounts) {
         push @{ $self->{'param_out'}{'errors'} }, "accounts_creation_failed";
-        &IdPAccountManager::Tools::do_log(
+        IdPAccountManager::Tools::do_log(
             'error',
             "Failed to create test accounts for SP with entityid %s",
             $self->{'param_in'}{'sp_entityid'}
@@ -586,14 +586,14 @@ sub req_validate_token {
     }
 
     ## Update simpleSAMLphp configuration to enable test accounts
-    unless (&IdPAccountManager::Tools::update_ssp_authsources()) {
+    unless (IdPAccountManager::Tools::update_ssp_authsources()) {
         push @{ $self->{'param_out'}{'errors'} }, "accounts_creation_failed";
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to create simpleSAMLphp configuration file");
         return undef;
     }
 
-    &IdPAccountManager::Tools::do_log(
+    IdPAccountManager::Tools::do_log(
         'info',
         "Token validated for sp_entityid=%s;token=%s",
         $self->{'param_in'}{'sp_entityid'},
@@ -609,7 +609,7 @@ sub req_validate_token {
 ## Return the homepage of the service
 sub req_home {
     my $self = shift;
-    &IdPAccountManager::Tools::do_log('info', "");
+    IdPAccountManager::Tools::do_log('info', "");
 
     return 1;
 }
diff --git a/bin/create-database-code.pl b/bin/create-database-code.pl
index 6bec69c8a39031b8c4712e15831827baa8bf7d11..eb5c1d006ad9af2038a2df26d29b26405807bdd2 100755
--- a/bin/create-database-code.pl
+++ b/bin/create-database-code.pl
@@ -9,7 +9,7 @@ use Getopt::Long;
 use Conf;
 
 my %options;
-unless (&GetOptions(\%options, 'database=s')) {
+unless (GetOptions(\%options, 'database=s')) {
     die "Unknown options.";
 }
 
diff --git a/lib/IdPAccountManager/AuthenticationToken.pm b/lib/IdPAccountManager/AuthenticationToken.pm
index 6a3ba9b80b46fae00671394f2fbc25eb19bdf432..d5f151dcf3f8160529b70b8a7ff140d2f0c49548 100644
--- a/lib/IdPAccountManager/AuthenticationToken.pm
+++ b/lib/IdPAccountManager/AuthenticationToken.pm
@@ -81,7 +81,7 @@ sub save {
     unless (defined $self->{'persistent'}->id) {
         $self->{'persistent'}->creation_date(time);
         $self->{'persistent'}
-          ->token(&_generate_token($self->{'persistent'}->{'email_address'}));
+          ->token(_generate_token($self->{'persistent'}->{'email_address'}));
     }
 
     unless ($self->{'persistent'}->save()) {
@@ -111,7 +111,7 @@ sub print {
 "AuthenticationToken ID=%s; token=%s; email_address=%s; sp_entityid=%s; creation_date=%s\n",
       $self->get('id'), $self->get('token'), $self->get('email_address'),
       $self->get('sp_entityid'),
-      &POSIX::strftime('%Y:%m:%d', localtime($self->get('creation_date')));
+      POSIX::strftime('%Y:%m:%d', localtime($self->get('creation_date')));
 
     return 1.;
 }
diff --git a/lib/IdPAccountManager/SAMLMetadata.pm b/lib/IdPAccountManager/SAMLMetadata.pm
index d1dbd1c68ef701a7a52b7122ad460ec2b0178a62..5b3a96484d754cf873d767b6a79695edb309a566 100644
--- a/lib/IdPAccountManager/SAMLMetadata.pm
+++ b/lib/IdPAccountManager/SAMLMetadata.pm
@@ -35,7 +35,7 @@ sub load {
     my %in   = @_;
 
     unless ($in{'federation_metadata_file_path'}) {
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Missing parameter 'federation_metadata_file_path'");
         return undef;
     }
@@ -44,22 +44,22 @@ sub load {
       $in{'federation_metadata_file_path'};
 
     unless (-r $self->{'federation_metadata_file_path'}) {
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to read $in{'federation_metadata_file_path'} : $!");
         return undef;
     }
 
     unless ($self->{'federation_metadata_as_xml'} =
-        &_get_xml_object($in{'federation_metadata_file_path'}))
+        _get_xml_object($in{'federation_metadata_file_path'}))
     {
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to parse file $in{'metadata_file'} : $!");
         return undef;
     }
 
     my $root = $self->{'federation_metadata_as_xml'}->documentElement();
     unless ($root->nodeName() =~ /EntitiesDescriptor$/) {
-        &IdPAccountManager::Tools::do_log(
+        IdPAccountManager::Tools::do_log(
             'error',
 "Root element of file $in{'federation_metadata_file_path'} is of type '%s'; should be 'EntitiesDescriptor'",
             $root->nodeName()
@@ -85,9 +85,9 @@ sub parse {
     }
 
     $self->{'federation_metadata_as_hashref'} =
-      &_parse_saml_metadata(%parser_args);
+      _parse_saml_metadata(%parser_args);
     unless (defined $self->{'federation_metadata_as_hashref'}) {
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to parse federation metadata");
         return undef;
     }
@@ -110,23 +110,23 @@ sub print {
 ## returns a Lib::XML représenting an XML file
 sub _get_xml_object {
     my $metadata_file = shift;
-    &IdPAccountManager::Tools::do_log('debug', "");
+    IdPAccountManager::Tools::do_log('debug', "");
 
     unless (-f $metadata_file) {
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "File $metadata_file not found: $!");
         return undef;
     }
 
     unless (open FH, $metadata_file) {
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to open file $metadata_file: $!");
         return undef;
     }
 
     my $parser;
     unless ($parser = XML::LibXML->new()) {
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to initialize XML parser");
         return undef;
     }
@@ -137,13 +137,13 @@ sub _get_xml_object {
     ## Eval() prevents the parsing from killing the main process
     eval { $doc = $parser->parse_fh(\*FH) };
     if ($@) {
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to parse file $metadata_file : $@");
         return undef;
     }
 
     unless ($doc) {
-        &IdPAccountManager::Tools::do_log('error',
+        IdPAccountManager::Tools::do_log('error',
             "Failed to parse file $metadata_file : $!");
         return undef;
     }
@@ -155,10 +155,10 @@ sub _get_xml_object {
 sub _parse_saml_metadata {
     my %options = @_;
 
-    #&IdPAccountManager::Tools::do_log('trace', "%s", join(',',%options));
+    #IdPAccountManager::Tools::do_log('trace', "%s", join(',',%options));
 
  #unless ($options{'filter_entity_type'}) {
- #&IdPAccountManager::Tools::do_log('error', "paramètre entity_type manquant");
+ #IdPAccountManager::Tools::do_log('error', "paramètre entity_type manquant");
  #return undef;
  #}
 
@@ -181,13 +181,13 @@ sub _parse_saml_metadata {
           if ($options{'filter_entity_id'}
             && ($options{'filter_entity_id'} ne $extracted_data->{'entityid'}));
 
-#&IdPAccountManager::Tools::do_log('trace', "EntityId: %s - Cherche %s", $extracted_data->{'entityid'}, $options{'filter_entity_id'});
+#IdPAccountManager::Tools::do_log('trace', "EntityId: %s - Cherche %s", $extracted_data->{'entityid'}, $options{'filter_entity_id'});
 
         $extracted_data->{'xml_md'} =
-          &IdPAccountManager::Tools::escape_xml($EntityDescriptor->toString());
+          IdPAccountManager::Tools::escape_xml($EntityDescriptor->toString());
 
-#&IdPAccountManager::Tools::do_log('trace', "EntityId: %s", $extracted_data->{'entityid'});
-#&IdPAccountManager::Tools::do_log('trace', "Entity dump: %s", $EntityDescriptor->toString());
+#IdPAccountManager::Tools::do_log('trace', "EntityId: %s", $extracted_data->{'entityid'});
+#IdPAccountManager::Tools::do_log('trace', "Entity dump: %s", $EntityDescriptor->toString());
 
         foreach my $child ($EntityDescriptor->childNodes()) {
 
@@ -240,12 +240,12 @@ sub _parse_saml_metadata {
                         'location' => $sso->getAttribute('Location'),
                         'index'    => $sso->getAttribute('index'),
                         'isdefault' =>
-                          &IdPAccountManager::Tools::boolean2integer(
+                          IdPAccountManager::Tools::boolean2integer(
                             $sso->getAttribute('isDefault')
                           )
                       };
 
-#&IdPAccountManager::Tools::do_log('trace', "Endpoint: type:%s ; binding=%s ; location=%s ; index=%s ; isdefault=%s", 'AssertionConsumerService', $sso->getAttribute('Binding'), $sso->getAttribute('Location'), $sso->getAttribute('index'), $sso->getAttribute('isDefault'));
+#IdPAccountManager::Tools::do_log('trace', "Endpoint: type:%s ; binding=%s ; location=%s ; index=%s ; isdefault=%s", 'AssertionConsumerService', $sso->getAttribute('Binding'), $sso->getAttribute('Location'), $sso->getAttribute('index'), $sso->getAttribute('isDefault'));
                 }
 
                 foreach my $requestedattribute (
@@ -256,14 +256,14 @@ sub _parse_saml_metadata {
                     push @{ $extracted_data->{'requested_attribute'} },
                       {
                         'friendly_name' =>
-                          &IdPAccountManager::Tools::encode_utf8(
+                          IdPAccountManager::Tools::encode_utf8(
                             $requestedattribute->getAttribute('FriendlyName')
                           ),
-                        'name' => &IdPAccountManager::Tools::encode_utf8(
+                        'name' => IdPAccountManager::Tools::encode_utf8(
                             $requestedattribute->getAttribute('Name')
                         ),
                         'is_required' =>
-                          &IdPAccountManager::Tools::boolean2integer(
+                          IdPAccountManager::Tools::boolean2integer(
                             $requestedattribute->getAttribute('isRequired')
                           )
                       };
@@ -271,7 +271,7 @@ sub _parse_saml_metadata {
 
             } elsif ($child->nodeName =~ /Extensions$/) {
 
-#&IdPAccountManager::Tools::do_log('trace', "Extensions for %s", $extracted_data->{'entityid'});
+#IdPAccountManager::Tools::do_log('trace', "Extensions for %s", $extracted_data->{'entityid'});
                 foreach my $registrationinfo (
                     $child->getElementsByLocalName('RegistrationInfo'))
                 {
@@ -290,7 +290,7 @@ sub _parse_saml_metadata {
                         if ($registrationpolicy->getAttribute('lang') eq 'en') {
                             $extracted_data->{'registration_info'}
                               {'registration_policy'} =
-                              &IdPAccountManager::Tools::encode_utf8(
+                              IdPAccountManager::Tools::encode_utf8(
                                 $registrationpolicy->textContent());
                         }
                     }
@@ -301,7 +301,7 @@ sub _parse_saml_metadata {
                 if (defined $contact_details{'type'}) {
                     foreach my $contact_child ($child->childNodes()) {
                         $contact_details{ $contact_child->localName } =
-                          &IdPAccountManager::Tools::encode_utf8(
+                          IdPAccountManager::Tools::encode_utf8(
                             $contact_child->textContent());
                     }
                     push @{ $extracted_data->{'contacts'} }, \%contact_details;
@@ -314,7 +314,7 @@ sub _parse_saml_metadata {
 
                 $extracted_data->{'display_name'}
                   { $displayname->getAttribute('xml:lang') } =
-                  &IdPAccountManager::Tools::encode_utf8(
+                  IdPAccountManager::Tools::encode_utf8(
                     $displayname->textContent());
 
                 ## Set a default displayName in case no English version is provided
@@ -324,7 +324,7 @@ sub _parse_saml_metadata {
                     || $displayname->getAttribute('xml:lang'))
                 {
                     $extracted_data->{'default_display_name'} =
-                      &IdPAccountManager::Tools::encode_utf8(
+                      IdPAccountManager::Tools::encode_utf8(
                         $displayname->textContent());
                 }
 
@@ -336,23 +336,23 @@ sub _parse_saml_metadata {
 
                 $extracted_data->{'description'}
                   { $description->getAttribute('xml:lang') } =
-                  &IdPAccountManager::Tools::encode_utf8(
+                  IdPAccountManager::Tools::encode_utf8(
                     $description->textContent());
             }
 
             foreach
               my $contact ($child->getElementsByLocalName('ContactPerson'))
             {
-                &IdPAccountManager::Tools::do_log('trace', "ContactPerson");
+                IdPAccountManager::Tools::do_log('trace', "ContactPerson");
 
                 my %contact_details;
                 $contact_details{'type'} =
                   $contact->getAttribute('contactType');
                 foreach my $contact_child ($EntityDescriptor->childNodes()) {
-                    &IdPAccountManager::Tools::do_log('trace', "Contact : %s",
+                    IdPAccountManager::Tools::do_log('trace', "Contact : %s",
                         $contact_child->localName);
                     $contact_details{ $contact_child->localName } =
-                      &IdPAccountManager::Tools::encode_utf8(
+                      IdPAccountManager::Tools::encode_utf8(
                         $contact_child->textContent());
                 }
                 push @{ $extracted_data->{'contacts'} }, \%contact_details;
@@ -362,19 +362,19 @@ sub _parse_saml_metadata {
                 $child->getElementsByLocalName('OrganizationDisplayName'))
             {
                 $extracted_data->{'organization'} =
-                  &IdPAccountManager::Tools::encode_utf8($sso->textContent());
+                  IdPAccountManager::Tools::encode_utf8($sso->textContent());
             }
 
             ## Getting X.509 certificates
             foreach my $cert ($child->getElementsByLocalName('X509Certificate'))
             {
                 $extracted_data->{'certificate'} =
-                  &IdPAccountManager::Tools::encode_utf8($cert->textContent());
+                  IdPAccountManager::Tools::encode_utf8($cert->textContent());
             }
         }
 
         ## Filter entities based  on type
-#&IdPAccountManager::Tools::do_log('trace', "Entity type : %s",  $extracted_data->{'type'});
+#IdPAccountManager::Tools::do_log('trace', "Entity type : %s",  $extracted_data->{'type'});
         next
           if (defined $options{'filter_entity_type'}
             && ($options{'filter_entity_type'} ne $extracted_data->{'type'}));
@@ -384,7 +384,7 @@ sub _parse_saml_metadata {
           if ($extracted_data->{'domain'});
         $extracted_data->{'domain'} = $domains;
 
-        #&IdPAccountManager::Tools::do_log('debug', "Scopes : %s", $domains);
+        #IdPAccountManager::Tools::do_log('debug', "Scopes : %s", $domains);
 
         push @extracted_array, $extracted_data;
     }
@@ -417,7 +417,7 @@ SAMLMetadata - loading SAML federation metadata
         
     ## List SAML entities
     printf "Hashref representing the metadata:\n";
-    &IdPAccountManager::Tools::dump_var($federation_metadata->{'federation_metadata_as_hashref'}, 0, \*STDOUT);
+    IdPAccountManager::Tools::dump_var($federation_metadata->{'federation_metadata_as_hashref'}, 0, \*STDOUT);
 
 =head1 DESCRIPTION
 
diff --git a/lib/IdPAccountManager/TestAccount.pm b/lib/IdPAccountManager/TestAccount.pm
index 2dee16dda3d409fee65375638323a51c6f7f670f..b576747f72762264d69c1325b6fdddd47137af44 100644
--- a/lib/IdPAccountManager/TestAccount.pm
+++ b/lib/IdPAccountManager/TestAccount.pm
@@ -66,9 +66,9 @@ sub save {
         $self->{'persistent'}->expiration_date(
             time + ($Conf::global{'accounts_validity_period'} * 3600 * 24));
         $self->{'user_password'} =
-          &IdPAccountManager::Tools::generate_password();
+          IdPAccountManager::Tools::generate_password();
         $self->{'persistent'}->user_password_hash(
-            &IdPAccountManager::Tools::sha256_hash($self->{'user_password'}));
+            IdPAccountManager::Tools::sha256_hash($self->{'user_password'}));
     }
 
     unless ($self->{'persistent'}->save()) {
@@ -98,8 +98,8 @@ sub print {
 "Account ID=%s; password_hash=%s; sp_entityid=%s; account_profile=%s; creation_date=%s; expiration_date=%s\n",
       $self->get('id'),          $self->get('user_password_hash'),
       $self->get('sp_entityid'), $self->get('account_profile'),
-      &POSIX::strftime('%Y:%m:%d', localtime($self->get('creation_date'))),
-      &POSIX::strftime('%Y:%m:%d', localtime($self->get('expiration_date')));
+      POSIX::strftime('%Y:%m:%d', localtime($self->get('creation_date'))),
+      POSIX::strftime('%Y:%m:%d', localtime($self->get('expiration_date')));
 
     return 1.;
 }
diff --git a/lib/IdPAccountManager/Tools.pm b/lib/IdPAccountManager/Tools.pm
index e4f1bd560de1195b80322b90a590fe611c543eac..cac1324dd8a3f86ec3a3393efe6236bf42a2ddaa 100644
--- a/lib/IdPAccountManager/Tools.pm
+++ b/lib/IdPAccountManager/Tools.pm
@@ -37,7 +37,7 @@ INIT {
 sub sha256_hash {
     my $s = shift;
 
-    return &Digest::SHA::sha256_base64($s);
+    return Digest::SHA::sha256_base64($s);
 }
 
 # This function generates a random password
@@ -125,12 +125,12 @@ sub dump_var {
         if (ref($var) eq 'ARRAY') {
             foreach my $index (0 .. $#{$var}) {
                 print $fd "\t" x $level . $index . "\n";
-                &dump_var($var->[$index], $level + 1, $fd);
+                dump_var($var->[$index], $level + 1, $fd);
             }
         } elsif (ref($var) eq 'HASH') {
             foreach my $key (sort keys %{$var}) {
                 print $fd "\t" x $level . '_' . $key . '_' . "\n";
-                &dump_var($var->{$key}, $level + 1, $fd);
+                dump_var($var->{$key}, $level + 1, $fd);
             }
         } else {
             if (defined $var) {
@@ -220,7 +220,7 @@ sub mail_notice {
         }
 
         if ($change_rcpt) {
-            &do_log(
+            do_log(
                 'info',
 "no_mail_outside option set; notification for %s rerouted to admins ; ",
                 $notice_email
@@ -229,7 +229,7 @@ sub mail_notice {
         }
     }
 
-    &do_log('trace', '(template=%s, to=%s)',
+    do_log('trace', '(template=%s, to=%s)',
         $in{'template'}, $mail_data->{'to'});
 
     open SENDMAIL,
@@ -237,9 +237,9 @@ sub mail_notice {
       . $Conf::global{'notice_from'}
       . " $notice_email";
 
-    my $tt2 = Template->new(FILTERS => { qencode => [ \&qencode, 0 ] });
+    my $tt2 = Template->new(FILTERS => { qencode => [ \qencode, 0 ] });
     unless ($tt2->process($tt2_file, $mail_data, \*SENDMAIL)) {
-        &do_log('error', "Error TT2 : %s", $tt2->error());
+        do_log('error', "Error TT2 : %s", $tt2->error());
     }
     close SENDMAIL;
 }