bonjour a tous,
voila je vous explique un peut mon problème : le script que je cherche a faire
prend en parametres un nom et un prenom et forme un login sur les regles
suivante:
1) le login et une combinaisant de (6 "les premières)lettres du nom)+(1 lettre "la première du prenom)
2) le nom et le prenom e doivent pas comporter d'espace "donc virer les espaces"
3) si le la taille du nom fait moin de 6 caractère on complete du prenom
4) si nom+ prenom fait moins de 6 caractères "ben c'est pas grave"
.......
voici le code
et voici le resultat de l'execution sous scite :
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 #!/usr/bin/perl -w my $tmp_var=undef; my @tmp_tab=undef; my @nom_prenom=("mi ne","jean pierre"); my $length_name=undef; my $loginID=undef; my $cpt=0; print "\nnom_prenom[0]=$nom_prenom[0]\n"; $nom_prenom[0]=~s/ //; print "\napres l'enlevement des espaces : $nom_prenom[0]\n"; print "\nnom_prenom[1]=$nom_prenom[1]\n"; $nom_prenom[1]=~s/ //; print "\napres l'enlevement des espaces : $nom_prenom[1]\n"; $length_name=length($nom_prenom[0]); if ($length_name==6) { print "\nnom == 6\n"; $loginID=$nom_prenom[0].substr($nom_prenom[1],0,1); }elsif ($length_name>6) { print "\nnom > 6\n"; $loginID=substr($nom_prenom[0],0,6).substr($nom_prenom[1],0,1); }elsif ($length_name<6) { print "\nnom <= 6\n"; $tmp_tab=split(/w/,$nom_prenom[1]); print "\n$tmp_tab[0],$tmp_tab[1],$tmp_tab[2],$tmp_tab[3]\n"; $loginID=$nom_prenom[0]; while (length($loginID)<=7 && $tmp_tab[$cpt]) { $loginID=$tmp_tab[$cpt++]; } } print "\n\n$loginID\n\n";
je n'arrive pas a enlever quand il ya plusieurs espaces
>perl -w loginid.pl
Use of implicit split to @_ is deprecated at loginid.pl line 26.
Name "main::tmp_tab" used only once: possible typo at loginid.pl line 26.
Use of uninitialized value in concatenation (.) or string at loginid.pl line 27.
Use of uninitialized value in concatenation (.) or string at loginid.pl line 27.
Use of uninitialized value in concatenation (.) or string at loginid.pl line 27.
Use of uninitialized value in concatenation (.) or string at loginid.pl line 27.
nom_prenom[0]=mi ne
apres l'enlevement des espaces : mine
nom_prenom[1]=jean pierre
apres l'enlevement des espaces : jeanpierre
nom <= 6
,,,
mine
>Exit code: 0
et je n'arrive pas a faire un split d'un mot
merci de m'aider
Partager