Bonjour,

je suis en train de créer un fichier CSV pour récupérer les valeurs des cellules pour créer des fichiers de configurations.
Je lis le fichier avec le module CPAN TEXT::CSV et dans une cellule je peux avoir plusieurs résultat.

Ce qui donne en gros ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
my $route = "192.168.0.0 255.255.255.0 10.0.0.1
192.168.1.0 255.255.255.0 10.0.0.1
192.168.2.0 255.255.255.0 10.0.0.1";

Le but est de rajouter "ip route" avant chaque ligne pour l'intégrer dans un fichier ultérieusement.

J'ai réussi à faire le rajout en passant par une array.

Mais est ce propre?
Est ce que je peux directement modifier la scalar?

J'ai eu deux possibilités.

### 1er solution ###
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
my @ligne = split /\n/, $route;
 
 
 
#foreach my $iproute (@ligne) {
#    $iproute = "ip route $iproute";
#    print "$iproute\n";
#    }
 
#print @ligne;

### 2è solution ###

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
my @lines;
 
foreach (@ligne) {
     s/^$_/ip route $_\n/;
    push @lines, $_;
    }
 
$lines[-1] =~ s/\n$//;  
 
print @lines;
### Résultat ###

ip route 192.168.0.0 255.255.255.0 10.0.0.1
ip route 192.168.1.0 255.255.255.0 10.0.0.1
ip route 192.168.2.0 255.255.255.0 10.0.0.1



Si il y a aussi un moyen de supprimer le dernier retour à la ligne en fin de la boucle je suis preneur