Re: Allez perle ! ('etait Re: [SSFR] Comptage) |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
On 2005-08-12 12:22:40 +0000, Christophe Martin wrote:
> En premier lieu, on est a peu pret d'accord pour dire
> quand c'est simple nawk et pis voila ! et quand c'est
> complique c'est perl, mais....
On peut très bien utiliser Perl pour des choses simples. Avantages:
_ Portabilité: nawk n'est pas installé partout.
_ Cela fait un seul langage à apprendre au lieu de deux (sauf pour
ceux qui ne font que des choses simples).
_ Si jamais on doit faire évoluer le script pour quelque chose de
plus compliqué, on n'a pas à le réécrire dans un autre langage.
> Nawk fait des tableaux multidimensionnels tres bien. et pis si
> tu veux faire des tris, c'est pas sorcier de trouver un algo
> quicksort et de l'implanter en awk.
Réinventer la roue, quoi. Perl permet de réutiliser des choses
déjà écrites, que ce soit en standard (tri) ou via des modules.
Si le tri fourni en standard ne suffit pas, il y en a plein
d'autres sous Sort::* (et ailleurs).
> sed peut traiter des fichiers de plusieurs Peta-octets (en fait il a
> pas de limite) pourvu que les lignes tiennent dans le pattern-space
Perl aussi.
> Avec awk, j'ai tendance a construire des trucs genre traitement en ligne,
> et eventuellement un petit tableau recapitulatif, ca bouffe rien en RAM.
Jamais de problème de mémoire avec perl, y compris sur mon zaurus.
> Par contre, les horreurs comme cdlabelgen (un bidule en perl) qui font :
> slurp $document
> slurp $template
> $template =~ s/MARQUE-OU-INSERER-LE-DOCUMENT/$document/
> print template
> Ca merde le jour ou un con comme moi, veut y inserer un document pas si
> enorme, mais quand meme pas si petit (121 Mo).
C'est probablement parce que cdlabelgen (un script de 29 Ko) a été
écrit pour faire des choses compliquées, nécessaitant le chargement
du document en mémoire. Perl n'oblige pas à tout charger en mémoire.
Il a un garbage collector: dès qu'un objet n'est plus référencé, il
est libéré (sauf dans le cas de références circulaires -- c'est un
bug connu, mais ça doit se produire très rarement).
--
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA