Selon Olivier Thauvin <[EMAIL PROTECTED]>:
> Le Mercredi 27 Juillet 2005 22:35, cc a écrit :
> > bonsoir,
> > y a-t-il un spécialiste de perl dans la salle ?
> > Je voudrais savoir s'il existe un moyen, au sein d'un script perl,
> > d'avoir le même comportement que sed -i ou perl -pi -e 'commandes'
> > fichier_a_traiter : que les modifications introduites par le script
> > s'appliquent sur le fichier en cours de traitement (sans avoir recours
> > à un fichir temporaire)
>
> perl -pi -e passe par un fichier temporaire, il ne fait que cacher la chose,
> mais dans la pratique il y est obligé.
>
> tu peux faire une fonction qui fait ça cependant, mais utilise un fichier
> temporaire, je ne vois pas comment faire autrement:
>
> sub perlpi {
> my ($fichier, $regexp) = @_;
> my $temp = "$fichier.$$";
> open my $fh, '<', $fichier or return 1;
> open my $tfh, '>', $temp or reutrn 1;
> while (<$fh>) {
> $_ =~ /$regexp/;
> }
> close $fh;
> close $tfh;
> unlink $fichier or return 1;
> rename $temp, $fichier or return 1;
> 0
> }
>
> UNTESTED !!!
>
merci pour cette information. je vais poursuivre dans cette voie. je ne voudrais
pas me planter puisqu'il s'agit de travailler sur /etc/passwd !
question subsidiaire : peut-on (en perl) avoir un accès direct à un
enregistrement ?
--
CC
____________________________________________________
Want to buy your Pack or Services from Mandriva?
Go to http://store.mandriva.com
Join the Club : http://www.mandrivaclub.com
____________________________________________________