Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

emboiter l'opérateur s

7 réponses
Avatar
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/\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...

Merci d'avance !

Manuel.

7 réponses

Avatar
Benoit Izac
Bonjour,

le 11/05/2008 à 15:45, mpg a écrit dans le message
<g06tak$18fs$ :

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

Avatar
mpg
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.

Avatar
Benoit Izac
Bonjour,

le 11/05/2008 à 19:08, mpg a écrit dans le message
<g07967$2qjc$ :

(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


Avatar
Nicolas George
mpg wrote in message <g06tak$18fs$:
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 ?

Avatar
espie
In article <g07967$2qjc$, mpg 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).

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


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

mpg wrote in message <g06tak$18fs$:
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.


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

In article <g07967$2qjc$, mpg
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.