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...
[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...
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...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
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é
CGI - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont des données stockées dans des variables du système et permettent aux programmes d'avoir des informations sur son environnement. Dans le cas du programme CGI, l'environnement est...
Perl - les opérateurs VoirQu'est-ce qu'un opérateur? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ... On distingue plusieurs types d'opérateurs : les opérateurs de calcul les...
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,...

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
Collection CommentÇaMarche.net