Posez votre question Signaler

[perl]Variable avant et après "use strict;&qu

kepon - Dernière réponse le 21 févr. 2006 à 23:43
Bonjour, voilà j'ai un script perl auquelle je veu ajouter une fonction de création de base de donnée suivant un utilisateur... la variiable $user1 est valide dans la 1er partie du script mais pas dans la 2de... (use strict;)... donc voilà mon bute est de que $user1 = $user2 mais comment faire???

voilà un bout de mon code :

#!/usr/bin/perl

#1er PARTIE DU SCRIPT
#tous le début du script
$user1 = "toto";
#tous le rest de mon script...

#2ème partie du script
  use strict;
  use DBI();
  # Connect to the database.
  my $dbh = DBI->connect("DBI:mysql:database=mysql;host=localhost",
                         "root", "passroot",
                         {'RaiseError' => 1});
my $user2 = $user1;
$dbh->do("CREATE DATABASE $user2");
  # Disconnect from the database.
  $dbh->disconnect(); 
Lire la suite 

[perl]Variable avant et après "use strict;&qu »

3 réponses
Réponse
+0
moins plus
personne ne peut m'aider?
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

  # Connect to the database.
 my $dbh = DBI->connect("DBI:mysql:database=mysql;host=localhost",
                        "root", "passroot",
                        {'RaiseError' => 1});
my $user2 = $user1;
$dbh->do("CREATE DATABASE $user2");
 # Disconnect from the database.
 $dbh->disconnect(); 


Donc tu as le descripteur de ta base de donnée mysql dans la variable $dbh.

Ensuite tu fait un $dbh->do("CREATE DATABASE $user2) qui n'est pas logique.

Dans une base de donnée on peut créer une table mais pas une autre base.

En ce qui concerne les variables $user1 et my $user2, je ne vois pas la raison pour laquelle tu n'utilise pas use strict au début de ton script. Tu peut entourré avec des accolades {} les parties de script pour limiter la portée de tes variables.
Mais tu fais comme tu veux.

Voilà une solution pour ton problème avec les variables $user1 et my $user2
#! /usr/bin/perl

$user1="toto";
sub var { return $user1 }

use strict;

# my $user2=$user1 ne fonctionne pas à cause de use strict
#Global symbol "$user1" requires explicit package name

my $user2=var;# en revanche la fonction var nous retourne $user1
print "$user2\n";# maintenant $user2 vaut toto
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Voilà encore 2 façon de le faire
1. utilisation de our
#! /usr/bin/perl
our $user1="toto";

use strict;
my $user2=$user1;
print "$user2\n";
2. utilisation de my
#! /usr/bin/perl
my $user1="toto";

use strict;
my $user2=$user1;
print "$user2\n";
Ajouter un commentaire
Ce document intitulé « [perl]Variable avant et après "use strict;&qu » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?