Rechercher : dans
Par :

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

Dernière réponse le 21 fév 2006 à 23:43:19 kepon, le 20 fév 2006 à 12:34:25 
 Signaler ce message aux modérateurs

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(); 

Meilleures réponses pour « [perl]Variable avant et après "use strict;&qu » dans :
Les variables avec Perl Voir Concept de variable avec Perl Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois...
Le remplacement de variables en shell Bash Voir=Le remplacement de variables= Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
Télécharger Avant-Browser VoirAvant Browser est un navigateur offrant les fonctionnalités suivantes : RSS Stockage du profil de l'utilisateur en ligne Auto-complétion des formulaires Bloqueur de publicité
Télécharger Avant Browser VoirLes pages Web sont parfois truffées de publicités ou des bannières au format flash. Il faut savoir que ces pubs représentent environ 90% du poids total de la page, ce qui encombrent la bande passante et ralentissent votre connexion. Avant Browser...
Perl - Les fonctions VoirLa notion de fonction et de procédure On appelle procédure un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la procédure dans le corps du programme principal. Les procédure permettent d'exécuter dans plusieurs...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...

1

kepon, le 20 fév 2006 à 13:36:57

Personne ne peut m'aider?

Répondre à kepon

2

lami20j, le 21 fév 2006 à 21:51:48

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

Répondre à lami20j

3

 lami20j, le 21 fév 2006 à 23:43:19

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";

Répondre à lami20j