Bonjour,
Je souhaite insérer des données qui sont sont un fichier texte dans une base de données MySQL via Perl.
Pour cela j'ai repris l'exemple de ce tuto de Djibril. J'arrive à me connecter à la bdd et à créer la tale voulue. Cependant mon programme n'arrive pas à lire le fichier txt contenant les données et me retourne l'erreur suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Insertion des donn├®es dans la table regions
Uncaught exception from user code:
        Impossible de lire le fichier reg2012.txt
Le programme de l'exemple est le suivant

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
#!/usr/bin/perl -w
 
 
use warnings; 
use strict; 
use diagnostics;
use DBI;                    # Charger le module DBI 
use vars qw/ $VERSION /;    # Version du script 
 
$VERSION = '1.0'; 
 
 
 
# Paramètres de connexion à la base de données 
 
my $bd          = 'ppl'; 
my $serveur     = 'monserv';    # Il est possible de mettre une adresse IP 
my $identifiant = 'bddusr';        # Identifiant 
my $motdepasse  = 'bddpass';     # Nous n'avons pas de mot de passe 
 
 
# Connexion à la base de donnees MySQL 
my $dbh = DBI->connect( "dbi:mysql:dbname=$bd;host=$serveur;", $identifiant, $motdepasse)
	or die "Connexion impossible à la base de données $bd !"; 
 
# Creation des tables 
print "Création de la table Regions\n"; 
my $sql_creation_table_regions = <<"SQL";
CREATE TABLE Regions ( 
    id_region INT             NOT NULL , 
    cheflieu  VARCHAR( 6 )    NOT NULL , 
    tncc      INT             NOT NULL , 
    ncc       VARCHAR( 100 )  NOT NULL , 
    nccenr    VARCHAR( 100 )  NOT NULL , 
    PRIMARY KEY ( id_region ) 
) COMMENT = 'Les regions 2012 en France'; 
SQL
 
$dbh->do('DROP TABLE IF EXISTS Regions;') or die "Impossible de supprimer la table Regions\n\n"; 
$dbh->do($sql_creation_table_regions) or die "Impossible de créer la table Regions\n\n"; 
 
# Lecture des fichiers et insertion des données 
my $fichier_regions      = 'reg2012.txt'; 
 
# Fichier Region 
print "Insertion des données dans la table regions\n"; 
open my $fh_regions, '<', $fichier_regions or die "Impossible de lire le fichier $fichier_regions\n"; 
my $entete_fichier_region = <$fh_regions>; 
 
# Insertion des donnees 
my $requete_sql_region = <<"SQL";
  INSERT INTO regions ( id_region, cheflieu, tncc, ncc, nccenr )
  VALUES ( ?, ?, ?, ?, ? );
 
SQL
 
my $sth_regions = $dbh->prepare($requete_sql_region) or die $dbh->errstr; 
 
while( my $ligne = <$fh_regions> ){ 
	chomp $ligne; 
	my ( $REGION, $CHEFLIEU, $TNCC, $NCC, $NCCENR ) = split /\t/, $ligne; 
	$sth_regions->execute( $REGION, $CHEFLIEU, $TNCC, $NCC, $NCCENR ) 
      or die "Echec Requête $requete_sql_region : $DBI::errstr"; 
} 
close $fh_regions; 
 
# Déconnexion de la base de donnees 
$dbh->disconnect();
Ma question est de savoir où doit t-on placer le fichier pour que cette instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
open my $fh_regions, '<', $fichier_regions or die "Impossible de lire le fichier $fichier_regions\n"; 
my $entete_fichier_region = <$fh_regions>;
fonction?
Merci