je me demandais s'il était possible qu'un script perl se lise lui même
et teste par exemple la présence de déclaration d'une variable à la
ligne xxx...
aucune application particuliere... juste pour la reflexion :)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stéphane Zuckerman
bonsoir.
je me demandais s'il était possible qu'un script perl se lise lui même et teste par exemple la présence de déclaration d'une variable à la ligne xxx...
aucune application particuliere... juste pour la reflexion :)
ben
#!/usr/bin/perl use strict; use warnings;
open(my $fh, "<", $0) or die $!;
print while (<$fh>);
close($fh) or warn $!;
Donc oui, on peut. :-)
bonsoir.
je me demandais s'il était possible qu'un script perl se lise lui même
et teste par exemple la présence de déclaration d'une variable à la
ligne xxx...
aucune application particuliere... juste pour la reflexion :)
je me demandais s'il était possible qu'un script perl se lise lui même et teste par exemple la présence de déclaration d'une variable à la ligne xxx...
aucune application particuliere... juste pour la reflexion :)
ben
#!/usr/bin/perl use strict; use warnings;
open(my $fh, "<", $0) or die $!;
print while (<$fh>);
close($fh) or warn $!;
Donc oui, on peut. :-)
Paul Gaborit
je me demandais s'il était possible qu'un script perl se lise lui même et teste par exemple la présence de déclaration d'une variable à la ligne xxx...
À (at) Thu, 02 Mar 2006 01:32:26 +0100, Stéphane Zuckerman écrivait (wrote):
#!/usr/bin/perl use strict; use warnings;
open(my $fh, "<", $0) or die $!;
print while (<$fh>);
close($fh) or warn $!;
Donc oui, on peut. :-)
Oui, on peut... mais pas en passant par $0 (même si parfois ça marche).
Le plus simple est d'utiliser le FileHandle DATA qui existe si votre script se termine par __END__ et qui est positionné juste après. Si on le ramène à zéro, on peut relire tout le script :
Mais rien ne garantit que cela marchera avec les futures versions de Perl (déjà, ça ne marche pas si on donne le script en ligne).
Le plus sûr serait d'utiliser les filtres. Pour en savoir plus : perldoc perlfilter.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
je me demandais s'il était possible qu'un script perl se lise lui
même et teste par exemple la présence de déclaration d'une variable
à la ligne xxx...
À (at) Thu, 02 Mar 2006 01:32:26 +0100,
Stéphane Zuckerman <stephane.zuckerman@gmail.com> écrivait (wrote):
#!/usr/bin/perl
use strict;
use warnings;
open(my $fh, "<", $0) or die $!;
print while (<$fh>);
close($fh) or warn $!;
Donc oui, on peut. :-)
Oui, on peut... mais pas en passant par $0 (même si parfois ça
marche).
Le plus simple est d'utiliser le FileHandle DATA qui existe si votre
script se termine par __END__ et qui est positionné juste après. Si on
le ramène à zéro, on peut relire tout le script :
je me demandais s'il était possible qu'un script perl se lise lui même et teste par exemple la présence de déclaration d'une variable à la ligne xxx...
À (at) Thu, 02 Mar 2006 01:32:26 +0100, Stéphane Zuckerman écrivait (wrote):
#!/usr/bin/perl use strict; use warnings;
open(my $fh, "<", $0) or die $!;
print while (<$fh>);
close($fh) or warn $!;
Donc oui, on peut. :-)
Oui, on peut... mais pas en passant par $0 (même si parfois ça marche).
Le plus simple est d'utiliser le FileHandle DATA qui existe si votre script se termine par __END__ et qui est positionné juste après. Si on le ramène à zéro, on peut relire tout le script :
Mais rien ne garantit que cela marchera avec les futures versions de Perl (déjà, ça ne marche pas si on donne le script en ligne).
Le plus sûr serait d'utiliser les filtres. Pour en savoir plus : perldoc perlfilter.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
David LE BOURGEOIS
bonsoir.
Bonjour.
je me demandais s'il était possible qu'un script perl se lise lui même et teste par exemple la présence de déclaration d'une variable à la ligne xxx...
aucune application particuliere... juste pour la reflexion :)
Comme ça, je dirai :
---8<------- #!/usr/bin/perl -w
use strict;
#my $var1; my $var2; my $var3;
open F, $0; print grep /^[^#]*[$]var/, (<F>)[4 .. 6]; close F; ---8<-------
Mais comment faire dans le cas de perl -e ?
-- David LE BOURGEOIS e-mail : david.lebourgeois (at) free.fr jabber : david.lebourgeois (at) jabber.fr
bonsoir.
Bonjour.
je me demandais s'il était possible qu'un script perl se lise lui même
et teste par exemple la présence de déclaration d'une variable à la
ligne xxx...
aucune application particuliere... juste pour la reflexion :)
Comme ça, je dirai :
---8<-------
#!/usr/bin/perl -w
use strict;
#my $var1;
my $var2;
my $var3;
open F, $0;
print grep /^[^#]*[$]var/, (<F>)[4 .. 6];
close F;
---8<-------
Mais comment faire dans le cas de perl -e ?
--
David LE BOURGEOIS
e-mail : david.lebourgeois (at) free.fr
jabber : david.lebourgeois (at) jabber.fr
je me demandais s'il était possible qu'un script perl se lise lui même et teste par exemple la présence de déclaration d'une variable à la ligne xxx...
aucune application particuliere... juste pour la reflexion :)
Comme ça, je dirai :
---8<------- #!/usr/bin/perl -w
use strict;
#my $var1; my $var2; my $var3;
open F, $0; print grep /^[^#]*[$]var/, (<F>)[4 .. 6]; close F; ---8<-------
Mais comment faire dans le cas de perl -e ?
-- David LE BOURGEOIS e-mail : david.lebourgeois (at) free.fr jabber : david.lebourgeois (at) jabber.fr
kurtz le pirate
In article , Paul Gaborit wrote:
... Mais rien ne garantit que cela marchera avec les futures versions de Perl (déjà, ça ne marche pas si on donne le script en ligne).
Le plus sûr serait d'utiliser les filtres. Pour en savoir plus : perldoc perlfilter.
mais comment tu fais pour tout savoir ? :)))
-- klp
In article <r7ek1l87rg.fsf@vaugirard.enstimac.fr>,
Paul Gaborit <Paul.Gaborit@invalid.invalid> wrote:
...
Mais rien ne garantit que cela marchera avec les futures versions de
Perl (déjà, ça ne marche pas si on donne le script en ligne).
Le plus sûr serait d'utiliser les filtres. Pour en savoir plus :
perldoc perlfilter.
Le plus sûr serait d'utiliser les filtres. Pour en savoir plus : perldoc perlfilter.
mais comment tu fais pour tout savoir ? :)))
C'est un informagicien perlien chevronné.
Salut,
Peux-être qu'il utilise plus que nous (je m'inclue dans ce nous et je n'émets aucune critique sur cette question dont la réponse m'intéresse)
la commande magique: echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq'|dc
Paul Gaborit
À (at) Thu, 02 Mar 2006 18:13:33 +0100, kurtz le pirate écrivait (wrote):
mais comment tu fais pour tout savoir ? :)))
Quelques années d'expériences font toute la différence ;-) mais :
1- Je ne sais pas tout, loin de là (dernier exemple en date dans ce forum : UTF8).
2- La traduction des documentations est une activité qui demande un peu de temps mais permet d'apprendre (ou de redécouvrir) énormément de choses... surtout si on prend le temps de tester les nouveautés qu'on découvre. Il va d'ailleurs falloir que je m'y remette pour rester à jour. Vous êtes les bienvenues pour aider !
3- L'enseignement, la recherche, l'administration système/réseau et le développement amènent aussi à rechercher des solutions dans de nombreux domaines.
Et j'oubliais : Google et CPAN !
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 02 Mar 2006 18:13:33 +0100,
kurtz le pirate <kurtzlepirate@yahoo.fr> écrivait (wrote):
mais comment tu fais pour tout savoir ? :)))
Quelques années d'expériences font toute la différence ;-) mais :
1- Je ne sais pas tout, loin de là (dernier exemple en date dans ce
forum : UTF8).
2- La traduction des documentations est une activité qui demande un
peu de temps mais permet d'apprendre (ou de redécouvrir) énormément de
choses... surtout si on prend le temps de tester les nouveautés qu'on
découvre. Il va d'ailleurs falloir que je m'y remette pour rester à
jour. Vous êtes les bienvenues pour aider !
3- L'enseignement, la recherche, l'administration système/réseau et le
développement amènent aussi à rechercher des solutions dans de
nombreux domaines.
Et j'oubliais : Google et CPAN !
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 02 Mar 2006 18:13:33 +0100, kurtz le pirate écrivait (wrote):
mais comment tu fais pour tout savoir ? :)))
Quelques années d'expériences font toute la différence ;-) mais :
1- Je ne sais pas tout, loin de là (dernier exemple en date dans ce forum : UTF8).
2- La traduction des documentations est une activité qui demande un peu de temps mais permet d'apprendre (ou de redécouvrir) énormément de choses... surtout si on prend le temps de tester les nouveautés qu'on découvre. Il va d'ailleurs falloir que je m'y remette pour rester à jour. Vous êtes les bienvenues pour aider !
3- L'enseignement, la recherche, l'administration système/réseau et le développement amènent aussi à rechercher des solutions dans de nombreux domaines.
Et j'oubliais : Google et CPAN !
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>