Bonjour,
Je cherche =E0 obtenir le nombre d'items
s=E9par=E9s par un point virgule.
open (DB, "<$file") || print $!;
$nb=3Dsplit(/;/,<DB>);
close DB; =20
Mon =E9diteur me dit :
Use of implicit split to @_ is deprecated
Dois je le croire alors que le r=E9sultat est correct ?
Merci
A+
Thibaud
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jérémy JUST
Le Sun, 1 Oct 2006 17:51:26 +0200,
Je cherche à obtenir le nombre d'items séparés par un point virgule. open (DB, "<$file") || print $!; $nb=split(/;/,<DB>); close DB;
Mon éditeur me dit : Use of implicit split to @_ is deprecated Dois je le croire alors que le résultat est correct ?
C'est l'éditeur ou le compilateur qui te répond ça?
Une fonctionnalité « deprecated » est encore utilisable, mais peut-être plus pour longtemps, il vaut mieux ne pas l'utiliser dans du code nouvellement écrit.
Est-ce que ça passe mieux:
$nb = scalar split(/;/, <DB>);
-- Jérémy JUST
Le Sun, 1 Oct 2006 17:51:26 +0200,
Je cherche à obtenir le nombre d'items
séparés par un point virgule.
open (DB, "<$file") || print $!;
$nb=split(/;/,<DB>);
close DB;
Mon éditeur me dit :
Use of implicit split to @_ is deprecated
Dois je le croire alors que le résultat est correct ?
C'est l'éditeur ou le compilateur qui te répond ça?
Une fonctionnalité « deprecated » est encore utilisable, mais
peut-être plus pour longtemps, il vaut mieux ne pas l'utiliser dans du
code nouvellement écrit.
Je cherche à obtenir le nombre d'items séparés par un point virgule. open (DB, "<$file") || print $!; $nb=split(/;/,<DB>); close DB;
Mon éditeur me dit : Use of implicit split to @_ is deprecated Dois je le croire alors que le résultat est correct ?
C'est l'éditeur ou le compilateur qui te répond ça?
Une fonctionnalité « deprecated » est encore utilisable, mais peut-être plus pour longtemps, il vaut mieux ne pas l'utiliser dans du code nouvellement écrit.
Est-ce que ça passe mieux:
$nb = scalar split(/;/, <DB>);
-- Jérémy JUST
Thibaud
C'est l'éditeur ou le compilateur qui te répond ça? Les warnings de l'éditeur
$nb = scalar split(/;/, <DB>); Idem
Merci
C'est l'éditeur ou le compilateur qui te répond ça?
Les warnings de l'éditeur
C'est l'éditeur ou le compilateur qui te répond ça? Les warnings de l'éditeur
Donc ça n'a pas d'importance. Rien ne garantit qu'il sache lire du code Perl.
-- Jérémy JUST
Paul Gaborit
À (at) Sun, 1 Oct 2006 18:29:18 +0200, Jérémy JUST écrivait (wrote):
Le Sun, 1 Oct 2006 17:51:26 +0200,
Je cherche à obtenir le nombre d'items séparés par un point virgule. open (DB, "<$file") || print $!; $nb=split(/;/,<DB>); close DB;
Mon éditeur me dit : Use of implicit split to @_ is deprecated Dois je le croire alors que le résultat est correct ?
C'est l'éditeur ou le compilateur qui te répond ça?
Une fonctionnalité « deprecated » est encore utilisable, mais peut-être plus pour longtemps, il vaut mieux ne pas l'utiliser dans du code nouvellement écrit.
Est-ce que ça passe mieux:
$nb = scalar split(/;/, <DB>);
Ces deux formes sont similaires. Elles sont déconseillées et en cours d'abandon. D'où le message d'avertissement.
L'explication : dans un contexte scalaire, 'split' retourne bien le nombre d'éléments issus du découpage *mais* utilise aussi *implicitement* le tableau @_ pour stocker ces éléments. C'est embêtant car vous perdez alors les paramètres reçus.
Si les éléments issus du découpage ne vous intéressent vraiment pas, il vaut peut-être mieux les compter autrement : par exemple, via un m//g (même si ce n'est pas exactement équivalent).
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Sun, 1 Oct 2006 18:29:18 +0200,
Jérémy JUST <jeremy_just@netcourrier.com> écrivait (wrote):
Le Sun, 1 Oct 2006 17:51:26 +0200,
Je cherche à obtenir le nombre d'items
séparés par un point virgule.
open (DB, "<$file") || print $!;
$nb=split(/;/,<DB>);
close DB;
Mon éditeur me dit :
Use of implicit split to @_ is deprecated
Dois je le croire alors que le résultat est correct ?
C'est l'éditeur ou le compilateur qui te répond ça?
Une fonctionnalité « deprecated » est encore utilisable, mais
peut-être plus pour longtemps, il vaut mieux ne pas l'utiliser dans du
code nouvellement écrit.
Est-ce que ça passe mieux:
$nb = scalar split(/;/, <DB>);
Ces deux formes sont similaires. Elles sont déconseillées et en cours
d'abandon. D'où le message d'avertissement.
L'explication : dans un contexte scalaire, 'split' retourne bien le
nombre d'éléments issus du découpage *mais* utilise aussi
*implicitement* le tableau @_ pour stocker ces éléments. C'est
embêtant car vous perdez alors les paramètres reçus.
Si les éléments issus du découpage ne vous intéressent vraiment pas,
il vaut peut-être mieux les compter autrement : par exemple, via un
m//g (même si ce n'est pas exactement équivalent).
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Sun, 1 Oct 2006 18:29:18 +0200, Jérémy JUST écrivait (wrote):
Le Sun, 1 Oct 2006 17:51:26 +0200,
Je cherche à obtenir le nombre d'items séparés par un point virgule. open (DB, "<$file") || print $!; $nb=split(/;/,<DB>); close DB;
Mon éditeur me dit : Use of implicit split to @_ is deprecated Dois je le croire alors que le résultat est correct ?
C'est l'éditeur ou le compilateur qui te répond ça?
Une fonctionnalité « deprecated » est encore utilisable, mais peut-être plus pour longtemps, il vaut mieux ne pas l'utiliser dans du code nouvellement écrit.
Est-ce que ça passe mieux:
$nb = scalar split(/;/, <DB>);
Ces deux formes sont similaires. Elles sont déconseillées et en cours d'abandon. D'où le message d'avertissement.
L'explication : dans un contexte scalaire, 'split' retourne bien le nombre d'éléments issus du découpage *mais* utilise aussi *implicitement* le tableau @_ pour stocker ces éléments. C'est embêtant car vous perdez alors les paramètres reçus.
Si les éléments issus du découpage ne vous intéressent vraiment pas, il vaut peut-être mieux les compter autrement : par exemple, via un m//g (même si ce n'est pas exactement équivalent).
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
André
il vaut peut-être mieux les compter autrement : par exemple, via un m//g (même si ce n'est pas exactement équivalent).
Très intéressant, merci beaucoup.
il vaut peut-être mieux les compter autrement : par exemple, via un
m//g (même si ce n'est pas exactement équivalent).
il vaut peut-être mieux les compter autrement : par exemple, via un m//g (même si ce n'est pas exactement équivalent).
Très intéressant, merci beaucoup.
Paul Gaborit
À (at) Mon, 02 Oct 2006 09:04:21 +0200, Paul Gaborit écrivait (wrote):
Si les éléments issus du découpage ne vous intéressent vraiment pas, il vaut peut-être mieux les compter autrement : par exemple, via un m//g (même si ce n'est pas exactement équivalent).
Je termine ma réponse que j'avais envoyée un peu vite.
Si les éléments issus du découpage vous intéressent alors il vaut mieux les extraire *puis* les compter :
my @elem = split /;/, $_; my $nb = @elem;
ou (en une seule ligne mais c'est moins compréhensible) :
my $nb = my @elem = split /;/, $_;
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 02 Oct 2006 09:04:21 +0200,
Paul Gaborit <Paul.Gaborit@invalid.invalid> écrivait (wrote):
Si les éléments issus du découpage ne vous intéressent vraiment pas,
il vaut peut-être mieux les compter autrement : par exemple, via un
m//g (même si ce n'est pas exactement équivalent).
Je termine ma réponse que j'avais envoyée un peu vite.
Si les éléments issus du découpage vous intéressent alors il vaut
mieux les extraire *puis* les compter :
my @elem = split /;/, $_;
my $nb = @elem;
ou (en une seule ligne mais c'est moins compréhensible) :
my $nb = my @elem = split /;/, $_;
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 02 Oct 2006 09:04:21 +0200, Paul Gaborit écrivait (wrote):
Si les éléments issus du découpage ne vous intéressent vraiment pas, il vaut peut-être mieux les compter autrement : par exemple, via un m//g (même si ce n'est pas exactement équivalent).
Je termine ma réponse que j'avais envoyée un peu vite.
Si les éléments issus du découpage vous intéressent alors il vaut mieux les extraire *puis* les compter :
my @elem = split /;/, $_; my $nb = @elem;
ou (en une seule ligne mais c'est moins compréhensible) :
my $nb = my @elem = split /;/, $_;
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>