Bonjour,

Je me retourne vers vous pour un problème que je n'arrive pas à résoudre, pourtant ca semble simple mais impossible d'obtenir un fonctionnement correct.

J'utilise Getopt::Long pour gérer mes arguments et Log::StdLog pour mes logs. Le problème est que je n'arrive pas à récupérer $cmd_args_ref->{"log_level"} dans Log::StdLog!

Pourtant je le récupère bien mais c'est comme si au moment de la compilation
Log::StdLog ne pouvait récupérer le hash de GetOptions. Enfin je dis ca, j'en sais rien a vrai dire.

Si quelqu'un à une idée pour me sortir de ce problème.

Merci d'avance,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl
 
use warnings;
use strict;
use Getopt::Long;
 
my %cmd_args = ();
my $cmd_args_ref = \%cmd_args;
GetOptions(
    "log-level=s"   =>  \$cmd_args{"log_level"},
);
 
sub log_format {
    my ($date, $pid, $level, @message) = @_;
    return "[$date][$level]: " . join(q{}, @message);
}
 
use Log::StdLog {
    format => \&log_format,
    file => "$0.log",
    level => $cmd_args_ref->{"log_level"},
};
 
print "pilip :", $cmd_args_ref->{"log_level"}, "\n";