J'ai un petit soucie avec un DBM, je n'arrive pas a récupérer mes données.
Voila mon script de teste :
pour récupérer mes données je fait comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #!/usr/bin/perl -w use strict; use AnyDBM_File; use DB_File; use diagnostics; my @i = qw/ a b c d /; my $new_filename = "test.dat"; my %newhash = (); tie %newhash, 'DB_File', $new_filename, O_CREAT|O_RDWR; $newhash{'teste'} = [@i];
le problème ce trouve la
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 tie(my %HIST, 'DB_File', 'test', 1, 0); my $i = $HIST{'teste'}; print @$i[0]; untie(%HIST)je ne comprend pas ou est mon erreur d'autant quand faisant un teste avec un autre script que voila :my $i = $HIST{'teste'};
print @$i[0];
Tout vas bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #!/usr/bin/perl -w use strict; my @i = qw/ a b c d /; my %l; $l{'reteste'} = [@i]; my $m = $l{'reteste'}; print @$m[2];
Perl me renvoie l'erreur suivante :
Can't use string ("ARRAY(0x1a01354)") as an ARRAY ref while "strict refs" in
use at C:\DOCUME~1\Siaoly\Bureau\cache.pl line 22 (#1)
(F) Only hard references are allowed by "strict refs". Symbolic
references are disallowed. See perlref.
Uncaught exception from user code:
Can't use string ("ARRAY(0x1a01354)") as an ARRAY ref while "strict refs" in use at C:\DOCUME~1\Siaoly\Bureau\cache.pl line 22.
at C:\DOCUME~1\Siaoly\Bureau\cache.pl line 22
Partager