Une introduction aux one-liners donc, qui illustrent une des facettes de cet excellent langage qu'est le Perl, autrement dit une des multiples façons d'utiliser la "tronçonneuse suisse" ;)
NdM: le premier article a deux ans.
Aller plus loin
- Le premier article (96 clics)
- Le second (40 clics)
# Re: Perl en ligne de commande
Posté par Cédric Foll . Évalué à 10.
devient en Ruby
ruby -ne 'puts split[0]+" "+split[-2]'
perl -ne 'print if 15 .. 17'
-> ruby -ne 'puts if 15..17'
perl -ne 'print unless 10 .. 20'
-> ruby -ne 'puts unless 15..17'
perl -ne 'print if /^START$/ .. /^END$/'
-> je sais pas le faire :-( (en une ligne)
perl -ne 'print unless /^START$/ .. /^END$/'
-> idem :-((
perl -ne 'print if $. >= 15; exit if $. >= 17;'
-> ruby -ne 'puts $_ if $. >= 15; exit if $. >= 17'
etc etc ...
C juste histoire de montrer aux Perleur que Ruby est aussi pratique. Et aux Pythons codeurs que l'on peut faire de l'objet sans se prendre la tête.
[^] # Re: Perl en ligne de commande
Posté par manatane . Évalué à 10.
[^] # Re: Perl en ligne de commande
Posté par Prosper . Évalué à 4.
[^] # Re: Perl en ligne de commande
Posté par Cédric Foll . Évalué à 0.
perl -e 'print reverse <>' file1 file2 file3
-> cat file1 file2 file3 | ruby -e 'puts $stdin.readlines.reverse'
perl -nle 'print scalar reverse $_' file1 file2 file3 ....
-> ruby -ne 'print $_.reverse' file1 file2 file3 ...
perl -lne '$_ = lc $_; print if $_ eq reverse' /usr/dict/words
-> ruby -ne 'print $_ if $_ == $_.reverse'
[^] # Re: Perl en ligne de commande
Posté par bobert . Évalué à -1.
$ ruby
bash: ruby: command not found
J'aime autant retenir des commandes qui marchent à peu près partout, pas uniquement chez moi.
Mais sur les qualités relatives des deux langages, j'ai aucun avis particulier.
[^] # Re: Perl en ligne de commande
Posté par reno . Évalué à 10.
C:\> perl
'perl' n'est pas reconnu [...]
La morale de l'histoire est que ce n'est pas parce qu'il y a des outils plus répandu que d'autre qu'il faut s'en contenter s'il y a des solutions supérieures.
Sinon pour perl vs ruby, je trouve ruby plus propre, a chaque fois que je veux écrire un script en perl je me cogne la tete contre les murs a cause des bizarrerie du language..
[^] # Re: Perl en ligne de commande
Posté par Alex . Évalué à 5.
Un autre avantyage de ruby est son coté tout objet, perso je trouve ça super pratique.
[^] # Re: Et aux Pythons codeurs que l'on peut faire de l'objet sans se prendre la tête.
Posté par jm . Évalué à 0.
[^] # Re: Et aux Pythons codeurs que l'on peut faire de l'objet sans se prendre la tête.
Posté par Cédric Foll . Évalué à 2.
Donc à mon sens Ruby possède l'avantage de Perl en ce qui concerne la concision du code (syntax sugar + surcharge) et la cohérence de Python en ce qui concerne l'approche Objet. Ruby est même encore plus objet que Python.
[^] # Re: surcharge d'opérateurs en Python
Posté par jm . Évalué à 5.
c'est faisable en Python (cf http://www.byte.com/art/9702/sec5/art4.htm#027prol1(...) )
et http://www.python.org/doc/current/ref/specialnames.html(...) pour les références
[^] # Re: surcharge d'opérateurs en Python
Posté par Cédric Foll . Évalué à 3.
[^] # Re: joujou avec les Matrices
Posté par jm . Évalué à 5.
[^] # Python vs Ruby: ce qui s'écrit ailleurs
Posté par jm . Évalué à 10.
Une opinion négative pour Ruby: http://www.mindview.net/Etc/FAQ.html#Ruby(...)
Une comparaison assez exhaustive et semble-t-il équilibrée: http://c2.com/cgi/wiki?PythonVsRuby(...)
Sur un autre Wiki, une comparaison très complète aussi, qui reprend les divers arguments des autres comparatifs: http://www.thinkware.se/cgi-bin/thinki.cgi/RubyVsPython(...)
Et jRuby [ http://jruby.sourceforge.net/(...) ] est l'équivalent de jython [ http://www.jython.org/(...)]
# Re: Perl en ligne de commande
Posté par xsnipe . Évalué à 3.
[^] # Re: Perl en ligne de commande
Posté par Cédric Foll . Évalué à 2.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 5.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Perl en ligne de commande
Posté par Yusei (Mastodon) . Évalué à 5.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.