emboiter l'opérateur s

Le
mpg
Bonjour,

Comme le titre bizarre le suggère, je ne sais pas bien le dire en français
alors je vais utiliser un exemple :

my $non_normal = `ls $TL/bin`;
$non_normal =~ s//$|/g;

Y a-t-il moyen de faire ça en une ligne ? Un peu de la même façon qu'on a le
droit de faire

chomp(my $non_normal = `ls $TL/bin`);

avec les deux opération `` et chomp en une instruction

Merci d'avance !

Manuel.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Benoit Izac
Le #6595541
Bonjour,

le 11/05/2008 à 15:45, mpg
Comme le titre bizarre le suggère, je ne sais pas bien le dire en
français alors je vais utiliser un exemple :

my $non_normal = `ls $TL/bin`;
$non_normal =~ s/n/$|/g;

Y a-t-il moyen de faire ça en une ligne ? Un peu de la même façon
qu'on a le droit de faire

chomp(my $non_normal = `ls $TL/bin`);

avec les deux opération `` et chomp en une instruction...


(my $non_normal = `ls $TL/bin`) =~ s/n/$|/g;

--
Benoit Izac

mpg
Le #6596731
Le (on) dimanche 11 mai 2008 16:14, Benoit Izac a écrit (wrote) :

(my $non_normal = `ls $TL/bin`) =~ s/n/$|/g;

Ah bah oui, je me sens un peu bête, là. En fait, c'est comme chomp sauf

qu'on l'écrit à droite, j'aurais pu trouver...

(Autre) question stupide : hormis les aspects esthétiques, il y a une
différence d'efficacité entre les deux façons d'écrire le truc ?

Manuel.

Benoit Izac
Le #6597371
Bonjour,

le 11/05/2008 à 19:08, mpg
(my $non_normal = `ls $TL/bin`) =~ s/n/$|/g;

Ah bah oui, je me sens un peu bête, là. En fait, c'est comme chomp

sauf qu'on l'écrit à droite, j'aurais pu trouver...


perldoc perlop, cherche « Assignment Operators ».

(Autre) question stupide : hormis les aspects esthétiques, il y a une
différence d'efficacité entre les deux façons d'écrire le truc ?


À ma connaissance, c'est strictement équivalent.

--
Benoit Izac


Nicolas George
Le #6597911
mpg wrote in message
Y a-t-il moyen de faire ça en une ligne ?


Tu as une bonne raison de vouloir rendre ton programme moins lisible,
j'espère ?

espie
Le #6598301
In article
Le (on) dimanche 11 mai 2008 16:14, Benoit Izac a écrit (wrote) :

(my $non_normal = `ls $TL/bin`) =~ s/n/$|/g;


Ah bah oui, je me sens un peu bête, là. En fait, c'est comme chomp sauf
qu'on l'écrit à droite, j'aurais pu trouver...

(Autre) question stupide : hormis les aspects esthétiques, il y a une
différence d'efficacité entre les deux façons d'écrire le truc ?


Dans le cas de l'exemple que tu donnes, l'efficacite est de toutes facons
dans les choux grace au process externe ls (sans compter la portabilite).

Si c'est un vrai code et pas juste un exemple pour rire, commence par
utiliser opendir et readdir (et sort si necessaire).


mpg
Le #6598821
Le (on) dimanche 11 mai 2008 23:00, Nicolas George a écrit (wrote) :

mpg wrote in message
Y a-t-il moyen de faire ça en une ligne ?


Tu as une bonne raison de vouloir rendre ton programme moins lisible,
j'espère ?


Est-ce que j'ai dit que je voulais le faire ? J'ai demandé si c'était
possible...

Manuel.


mpg
Le #6598811
Le (on) lundi 12 mai 2008 00:04, Marc Espie a écrit (wrote) :

In article wrote:
Le (on) dimanche 11 mai 2008 16:14, Benoit Izac a écrit (wrote) :

(my $non_normal = `ls $TL/bin`) =~ s/n/$|/g;


Ah bah oui, je me sens un peu bête, là. En fait, c'est comme chomp sauf
qu'on l'écrit à droite, j'aurais pu trouver...

(Autre) question stupide : hormis les aspects esthétiques, il y a une
différence d'efficacité entre les deux façons d'écrire le truc ?


Dans le cas de l'exemple que tu donnes, l'efficacite est de toutes facons
dans les choux grace au process externe ls (sans compter la portabilite).

Euh, oui, mauvais exemple. C'était plutôt une question d'ordre général.

Quant à la portabilité, ce n'est pas un objectif pour ce script précis,
mais...

Si c'est un vrai code et pas juste un exemple pour rire, commence par
utiliser opendir et readdir (et sort si necessaire).


...merci pour ce conseil tout de même !

Manuel.



Publicité
Poster une réponse
Anonyme