From philippe.delavalade at orange.fr Fri Apr 1 01:23:24 2016 From: philippe.delavalade at orange.fr (Philippe Delavalade) Date: Fri, 1 Apr 2016 01:23:24 +0200 Subject: [Perl] =?utf-8?q?Message_ind=C3=A9sirable?= Message-ID: <20160331232324.GA1259@magellan.home> Bonjour. Une petite question dont la réponse est sans doute évidente sauf pour moi. Si j'utilise '~~' j'obtiens le message Smartmatch is experimental at ./machin.pl line 25. Comment peut-on éviter ça ? J'utilise perl v5.18.1. Merci d'avance. -- Ph. Delavalade From pierrick.dintrat at gmail.com Fri Apr 1 01:39:31 2016 From: pierrick.dintrat at gmail.com (pierrick dintrat) Date: Fri, 1 Apr 2016 01:39:31 +0200 Subject: [Perl] =?utf-8?q?Message_ind=C3=A9sirable?= In-Reply-To: <20160331232324.GA1259@magellan.home> References: <20160331232324.GA1259@magellan.home> Message-ID: Bonjour, Tu peux utilser le module experimentals : http://search.cpan.org/~dconway/experimentals-0.016/lib/experimentals.pm il suffit d'inserer dans ton script use experimentals; Le 1 avril 2016 à 01:23, Philippe Delavalade a écrit : > Bonjour. > > Une petite question dont la réponse est sans doute évidente sauf pour moi. > > Si j'utilise '~~' j'obtiens le message > Smartmatch is experimental at ./machin.pl line 25. > > Comment peut-on éviter ça ? J'utilise perl v5.18.1. > > Merci d'avance. > > -- > Ph. Delavalade > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From ponder.stibbons at orange.fr Fri Apr 1 07:27:40 2016 From: ponder.stibbons at orange.fr (Jean) Date: Fri, 01 Apr 2016 07:27:40 +0200 Subject: [Perl] =?iso-8859-1?q?O=F9_=241_est-il_captur=E9=3F?= In-Reply-To: <56FCCDC7.70206@unil.ch> References: <56FA71EB.9020701@unil.ch> <56FB83C7.2030501@unil.ch> <56FCCDC7.70206@unil.ch> Message-ID: <1459488460.2810.13.camel@jf-xubuntu> Le jeudi 31 mars 2016 à 09:12 +0200, Sebastien Moretti a écrit : > > C'est pour cette raison qu'il faut vérifier que la regex a bien été > > reconnue avant d'utiliser $1. > > Tu prêches un converti! > > > Exécute le code qui suit pour illustration. Le premier bloc est > > incorrect car $1 conserve sa valeur tant qu'une nouvelle correspondance > > n'est pas réussie (auquel cas $1 est mis à jour). > > Je pensais quand même qu'il y avait une limite, un scope, à ça. > Mais non semble-t-il. > Potentiellement très dangereux. > $1 est une variable *globale* et "use strict" accepte cette variable globale (ainsi que toutes les variables spéciales comme $! ou $/). Ce n'est pas la peine de chercher plus loin. Adopter de bonnes pratiques comme "use strict" et la déclaration systématique de variables avec "my" est une bonne chose, mais il ne faut pas oublier qu'il y a quelque chose à côté. Les variables globales sont peut-être très dangereuses, mais parfois elles se révèlent très utiles. Cf l'anecdote récemment diffusée : http://thedailywtf.com/articles/a-meaty-problem (c'est du Java et de l'anglais, désolé). Pour capturer des sous-chaînes, j'utilise la syntaxe : my $line = " Zone: 2.50h East of Greenwich" my ($delta, $hemi) = $line =~ /^\s*Zone: \s+(\d+(?:\.\d+)?)h # delta hours \s+(East|West) # hemisphere \s+of\s+Greenwich/x; Et si ça foire (par exemple, écrire "Greenwich" dans la chaîne et "Greenwwich" dans l'expression régulière, exemple vécu hier soir) j'obtiens un message "use of undefined value ...". Mais l'avantage est que les captures se font dans des variables *lexicales* et que l'on sait rapidement s'il y a un échec. Il y a aussi les captures nommées directement à l'intérieur de l'expression régulière : $line =~ /^\s*Zone: \s+(?\d+(?:\.\d+)?)h # delta hours \s+(?East|West) # hemisphere \s+of\s+Greenwich/x; (Le code n'est pas testé, je n'ai pas encore complètement intégré les nouvelles fonctionnalités de Perl 5.10.) Dans ton cas, il s'agit d'un s/// et non pas d'un m//. Je ne sais pas si les deux méthodes conviennent au s///. En espérant t'avoir été utile, Jean From sebastien.moretti at unil.ch Fri Apr 1 12:04:18 2016 From: sebastien.moretti at unil.ch (Sebastien Moretti) Date: Fri, 1 Apr 2016 12:04:18 +0200 Subject: [Perl] =?utf-8?b?T8O5ICQxIGVzdC1pbCBjYXB0dXLDqT8=?= In-Reply-To: <1459488460.2810.13.camel@jf-xubuntu> References: <56FA71EB.9020701@unil.ch> <56FB83C7.2030501@unil.ch> <56FCCDC7.70206@unil.ch> <1459488460.2810.13.camel@jf-xubuntu> Message-ID: <56FE47A2.1040302@unil.ch> Merci pour ces éclaircissements. Un risque dont je ne me méfiais pas (encore) sur du vieux code. >>> C'est pour cette raison qu'il faut vérifier que la regex a bien été >>> reconnue avant d'utiliser $1. >> >> Tu prêches un converti! >> >>> Exécute le code qui suit pour illustration. Le premier bloc est >>> incorrect car $1 conserve sa valeur tant qu'une nouvelle correspondance >>> n'est pas réussie (auquel cas $1 est mis à jour). >> >> Je pensais quand même qu'il y avait une limite, un scope, à ça. >> Mais non semble-t-il. >> Potentiellement très dangereux. >> > $1 est une variable *globale* et "use strict" accepte cette variable > globale (ainsi que toutes les variables spéciales comme $! ou $/). > Ce n'est pas la peine de chercher plus loin. > > Adopter de bonnes pratiques comme "use strict" et la déclaration > systématique de variables avec "my" est une bonne chose, mais il > ne faut pas oublier qu'il y a quelque chose à côté. > Les variables globales sont peut-être très dangereuses, mais parfois > elles se révèlent très utiles. Cf l'anecdote récemment diffusée : > http://thedailywtf.com/articles/a-meaty-problem > (c'est du Java et de l'anglais, désolé). > > Pour capturer des sous-chaînes, j'utilise la syntaxe : > > my $line = " Zone: 2.50h East of Greenwich" > my ($delta, $hemi) = $line =~ /^\s*Zone: > \s+(\d+(?:\.\d+)?)h # delta hours > \s+(East|West) # hemisphere > \s+of\s+Greenwich/x; > > Et si ça foire (par exemple, écrire "Greenwich" dans la chaîne et > "Greenwwich" dans l'expression régulière, exemple vécu hier soir) > j'obtiens un message "use of undefined value ...". Mais l'avantage > est que les captures se font dans des variables *lexicales* > et que l'on sait rapidement s'il y a un échec. > > Il y a aussi les captures nommées directement à l'intérieur > de l'expression régulière : > > $line =~ /^\s*Zone: > \s+(?\d+(?:\.\d+)?)h # delta hours > \s+(?East|West) # hemisphere > \s+of\s+Greenwich/x; > > (Le code n'est pas testé, je n'ai pas encore complètement intégré > les nouvelles fonctionnalités de Perl 5.10.) > > Dans ton cas, il s'agit d'un s/// et non pas d'un m//. Je ne sais > pas si les deux méthodes conviennent au s///. > > En espérant t'avoir été utile, > > Jean -- Sébastien Moretti From philippe.delavalade at orange.fr Fri Apr 1 12:57:14 2016 From: philippe.delavalade at orange.fr (Philippe Delavalade) Date: Fri, 1 Apr 2016 12:57:14 +0200 Subject: [Perl] =?utf-8?q?Message_ind=C3=A9sirable?= In-Reply-To: References: <20160331232324.GA1259@magellan.home> Message-ID: <20160401105714.GA2500@magellan.home> Le vendredi 01 avril à 01:39, pierrick dintrat a écrit : > Bonjour, > Tu peux utilser le module experimentals : > http://search.cpan.org/~dconway/experimentals-0.016/lib/experimentals.pm Merci pour le lien. Cela dit, j'ai télécharger le tarball, décompressé (pas moi :-)), configuré, lancé make puis ... make test mais là ça coince. J'obtiens : PERL_DL_NONLAZY=1 /usr/bin/perl5.18.1 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/no_experimentals.t ... ok # Failed test 'Got unexpected warning' # at t/use_experimentals.t line 3. # Subroutine bar redefined at (eval 9) line 2. # Looks like you failed 1 test of 9. t/use_experimentals.t .. Dubious, test returned 1 (wstat 256, 0x100) Failed 1/9 subtests Test Summary Report ------------------- t/use_experimentals.t (Wstat: 256 Tests: 9 Failed: 1) Failed test: 5 Non-zero exit status: 1 Files=2, Tests=11, 0 wallclock secs ( 0.01 usr 0.00 sys + 0.02 cusr 0.00 csys = 0.03 CPU) Result: FAIL Failed 1/2 test programs. 1/11 subtests failed. make: *** [test_dynamic] Erreur 1 Dois-je renoncer ou forcer l'installation ? Je ne me rends pas compte de l'inportance de l'erreur. Je précise que je suis sous gnu/linux, slint (ou slackware) 14.1. Merci pour les conseils. -- Ph. Delavalade From laurent.rosenfeld at googlemail.com Fri Apr 1 13:21:46 2016 From: laurent.rosenfeld at googlemail.com (Laurent Rosenfeld) Date: Fri, 1 Apr 2016 13:21:46 +0200 Subject: [Perl] =?utf-8?q?Message_ind=C3=A9sirable?= In-Reply-To: <20160401105714.GA2500@magellan.home> References: <20160331232324.GA1259@magellan.home> <20160401105714.GA2500@magellan.home> Message-ID: Sinon, il y a: no warnings 'experimental::smartmatch'; Cordialement, Laurent. Le 1 avril 2016 à 12:57, Philippe Delavalade a écrit : > Le vendredi 01 avril à 01:39, pierrick dintrat a écrit : > > Bonjour, > > Tu peux utilser le module experimentals : > > http://search.cpan.org/~dconway/experimentals-0.016/lib/experimentals.pm > > Merci pour le lien. Cela dit, j'ai télécharger le tarball, décompressé (pas > moi :-)), configuré, lancé make puis ... make test mais là ça coince. > > J'obtiens : > > PERL_DL_NONLAZY=1 /usr/bin/perl5.18.1 "-MExtUtils::Command::MM" "-e" > "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t > t/no_experimentals.t ... ok > > # Failed test 'Got unexpected warning' > # at t/use_experimentals.t line 3. > # Subroutine bar redefined at (eval 9) line 2. > # Looks like you failed 1 test of 9. > t/use_experimentals.t .. > Dubious, test returned 1 (wstat 256, 0x100) > Failed 1/9 subtests > > Test Summary Report > ------------------- > t/use_experimentals.t (Wstat: 256 Tests: 9 Failed: 1) > Failed test: 5 > Non-zero exit status: 1 > Files=2, Tests=11, 0 wallclock secs ( 0.01 usr 0.00 sys + 0.02 cusr > 0.00 csys = 0.03 CPU) > Result: FAIL > Failed 1/2 test programs. 1/11 subtests failed. > make: *** [test_dynamic] Erreur 1 > > Dois-je renoncer ou forcer l'installation ? Je ne me rends pas compte de > l'inportance de l'erreur. > > Je précise que je suis sous gnu/linux, slint (ou slackware) 14.1. > > Merci pour les conseils. > > -- > Ph. Delavalade > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From philippe.delavalade at orange.fr Fri Apr 1 13:40:32 2016 From: philippe.delavalade at orange.fr (Philippe Delavalade) Date: Fri, 1 Apr 2016 13:40:32 +0200 Subject: [Perl] =?utf-8?q?Message_ind=C3=A9sirable?= In-Reply-To: References: <20160331232324.GA1259@magellan.home> <20160401105714.GA2500@magellan.home> Message-ID: <20160401114031.GA2584@magellan.home> Le vendredi 01 avril à 13:21, Laurent Rosenfeld a écrit : > Sinon, il y a: > > no warnings 'experimental::smartmatch'; parfait. Ça me convient tout à fait. Merci. -- Ph. Delavalade From olivier.mengue at gmail.com Sun Apr 3 23:06:07 2016 From: olivier.mengue at gmail.com (=?UTF-8?Q?Olivier_Mengu=C3=A9?=) Date: Sun, 3 Apr 2016 23:06:07 +0200 Subject: [Perl] =?utf-8?q?Message_ind=C3=A9sirable?= In-Reply-To: References: <20160331232324.GA1259@magellan.home> Message-ID: C'est plutôt le module « experimental » qu'il faut utiliser : https://metacpan.org/pod/experimental D'ailleurs, celui-ci est livré avec perl depuis la version de de dev 5.19.11, et donc en perl stable depuis 5.20.0. Le 1 avril 2016 à 01:39, pierrick dintrat a écrit : > Bonjour, > Tu peux utilser le module experimentals : > http://search.cpan.org/~dconway/experimentals-0.016/lib/experimentals.pm > > il suffit d'inserer dans ton script > use experimentals; > > > Le 1 avril 2016 à 01:23, Philippe Delavalade < > philippe.delavalade at orange.fr> a écrit : > >> Bonjour. >> >> Une petite question dont la réponse est sans doute évidente sauf pour moi. >> >> Si j'utilise '~~' j'obtiens le message >> Smartmatch is experimental at ./machin.pl line 25. >> >> Comment peut-on éviter ça ? J'utilise perl v5.18.1. >> >> Merci d'avance. >> >> -- >> Ph. Delavalade >> _______________________________________________ >> Perl mailing list >> Perl at mongueurs.net >> http://listes.mongueurs.net/mailman/listinfo/perl >> > > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > > -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From olivier.mengue at gmail.com Sun Apr 3 23:08:25 2016 From: olivier.mengue at gmail.com (=?UTF-8?Q?Olivier_Mengu=C3=A9?=) Date: Sun, 3 Apr 2016 23:08:25 +0200 Subject: [Perl] =?utf-8?q?Message_ind=C3=A9sirable?= In-Reply-To: <20160401105714.GA2500@magellan.home> References: <20160331232324.GA1259@magellan.home> <20160401105714.GA2500@magellan.home> Message-ID: Le 1 avril 2016 à 12:57, Philippe Delavalade a écrit : > Le vendredi 01 avril à 01:39, pierrick dintrat a écrit : > > Bonjour, > > Tu peux utilser le module experimentals : > > http://search.cpan.org/~dconway/experimentals-0.016/lib/experimentals.pm > > Merci pour le lien. Cela dit, j'ai télécharger le tarball, décompressé (pas > moi :-)), configuré, lancé make puis ... make test mais là ça coince. > > Tout ça à la main ? Tu n'utilises pas de client CPAN ? Olivier. -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From ponder.stibbons at orange.fr Mon Apr 4 07:28:49 2016 From: ponder.stibbons at orange.fr (Jean) Date: Mon, 04 Apr 2016 07:28:49 +0200 Subject: [Perl] =?iso-8859-1?q?O=F9_=241_est-il_captur=E9=3F?= In-Reply-To: <56FE47A2.1040302@unil.ch> References: <56FA71EB.9020701@unil.ch> <56FB83C7.2030501@unil.ch> <56FCCDC7.70206@unil.ch> <1459488460.2810.13.camel@jf-xubuntu> <56FE47A2.1040302@unil.ch> Message-ID: <1459747729.5347.12.camel@jf-xubuntu> Le vendredi 01 avril 2016 à 12:04 +0200, Sebastien Moretti a écrit : > Merci pour ces éclaircissements. > > Un risque dont je ne me méfiais pas (encore) sur du vieux code. > > >>> C'est pour cette raison qu'il faut vérifier que la regex a bien été > >>> reconnue avant d'utiliser $1. > >> > >> Tu prêches un converti! > >> > >>> Exécute le code qui suit pour illustration. Le premier bloc est > >>> incorrect car $1 conserve sa valeur tant qu'une nouvelle correspondance > >>> n'est pas réussie (auquel cas $1 est mis à jour). > >> > >> Je pensais quand même qu'il y avait une limite, un scope, à ça. > >> Mais non semble-t-il. > >> Potentiellement très dangereux. > >> > > $1 est une variable *globale* et "use strict" accepte cette variable > > globale (ainsi que toutes les variables spéciales comme $! ou $/). > > Ce n'est pas la peine de chercher plus loin. > > Puisque je mets $1 sur le même plan que $/, je rappelle la façon très connue de copier le contenu entier d'un fichier dans un scalaire ("slurp") sans perturber le reste du script et les modules : my $contenu open my $fh, '<', $nomfic or die $!; { local $/ = undef; $convenu = <$fh>; } close $fh or die $!; Par analogie, je pense que l'on peut très bien écrire : my $dir; { local $1 = undef; $r_id =~ s/_(B|LR|RL)$//; $dir = $1; } die "Invalid ID syntax: [$r_id]\n" unless $dir; Attention, je n'ai pas testé. Ce n'est pas très connu, car il y a d'autres possibilités de faire (cf. la suite de mon message de vendredi), mais cela peut être une solution intéressante, par exemple si tu as besoin de $1 dans la partie substitution de ton opérateur s///. Ou alors, $1 est une variable en lecture seule, modifiable uniquement pas m// et par s/// et je viens de raconter des bêtises. En espérant avoir été utile une nouvelle fois. Jean From damien at krotkine.com Mon Apr 4 09:28:16 2016 From: damien at krotkine.com (Damien Krotkine) Date: Mon, 04 Apr 2016 09:28:16 +0200 Subject: [Perl] =?iso-8859-1?q?O=F9_=241_est-il_captur=E9=3F?= In-Reply-To: <1459747729.5347.12.camel@jf-xubuntu> References: <56FA71EB.9020701@unil.ch> <56FB83C7.2030501@unil.ch> <56FCCDC7.70206@unil.ch> <1459488460.2810.13.camel@jf-xubuntu> <56FE47A2.1040302@unil.ch> <1459747729.5347.12.camel@jf-xubuntu> Message-ID: <57021790.1070107@krotkine.com> perl -E 'local $1 = undef' Modification of a read-only value attempted at -e line 1. Le mieux c'est vraiment le test du succès de l'application de la regex. Pour récupérer le contenu d'un fichier j'utilise souvent ce golf: my $content = ((local(@ARGV,$/)="filename"),<>); Jean wrote: > Le vendredi 01 avril 2016 à 12:04 +0200, Sebastien Moretti a écrit : >> Merci pour ces éclaircissements. >> >> Un risque dont je ne me méfiais pas (encore) sur du vieux code. >> >>>>> C'est pour cette raison qu'il faut vérifier que la regex a bien été >>>>> reconnue avant d'utiliser $1. >>>> Tu prêches un converti! >>>> >>>>> Exécute le code qui suit pour illustration. Le premier bloc est >>>>> incorrect car $1 conserve sa valeur tant qu'une nouvelle correspondance >>>>> n'est pas réussie (auquel cas $1 est mis à jour). >>>> Je pensais quand même qu'il y avait une limite, un scope, à ça. >>>> Mais non semble-t-il. >>>> Potentiellement très dangereux. >>>> >>> $1 est une variable *globale* et "use strict" accepte cette variable >>> globale (ainsi que toutes les variables spéciales comme $! ou $/). >>> Ce n'est pas la peine de chercher plus loin. >>> > > Puisque je mets $1 sur le même plan que $/, je rappelle la façon très > connue de copier le contenu entier d'un fichier dans un scalaire > ("slurp") sans perturber le reste du script et les modules : > > my $contenu > open my $fh, '<', $nomfic > or die $!; > { > local $/ = undef; > $convenu =<$fh>; > } > close $fh or die $!; > > Par analogie, je pense que l'on peut très bien écrire : > > my $dir; > { > local $1 = undef; > $r_id =~ s/_(B|LR|RL)$//; > $dir = $1; > } > die "Invalid ID syntax: [$r_id]\n" unless $dir; > > Attention, je n'ai pas testé. > > Ce n'est pas très connu, car il y a d'autres possibilités > de faire (cf. la suite de mon message de vendredi), mais > cela peut être une solution intéressante, par exemple si > tu as besoin de $1 dans la partie substitution de ton > opérateur s///. > > Ou alors, $1 est une variable en lecture seule, modifiable > uniquement pas m// et par s/// et je > viens de raconter des bêtises. > > En espérant avoir été utile une nouvelle fois. > > Jean > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From asseline at telecom-paristech.fr Mon Apr 4 18:15:49 2016 From: asseline at telecom-paristech.fr (Dominique Asselineau) Date: Mon, 4 Apr 2016 18:15:49 +0200 Subject: [Perl] =?iso-8859-1?q?HTTP=3A=3ARequest_m=E9thode_content?= Message-ID: <20160404161549.GA13866@telecom-paristech.fr> Bonjour, En fait, ça concerne plus précisément la classe HTTP::Message héritée par HTTP::Request. La méthode content impose qu'on lui fournisse une chaîne d'octets et comme les données peuvent être volumineuses, j'aurais souhaité un moyen de passer soit un nom de fichier, soit un handle sur le fichier. J'ai tout de même remarqué la méthode content_ref qui éviterait une copie pour la transmission des données. J'ai également vu qu'on pouvait effectivement passer un fichier mais seulement dans le cas de multipart, pour simuler un upload de fichier donc. Y a-t-il un moyen de passer un handle ou un nom de fichier à un objet de classe HTTP::Request, ou dois-je me contenter de la méthode content_ref ? À moins qu'il existe une classe plus puissante pour ce genre d'opération ? Merci de votre aide. Dominique -- From kaicarver at gmail.com Tue Apr 5 12:07:11 2016 From: kaicarver at gmail.com (Kai Carver) Date: Tue, 5 Apr 2016 18:07:11 +0800 Subject: [Perl] =?utf-8?q?HTTP=3A=3ARequest_m=C3=A9thode_content?= In-Reply-To: <20160404161549.GA13866@telecom-paristech.fr> References: <20160404161549.GA13866@telecom-paristech.fr> Message-ID: Hello, Si j'ai bien compris tu veux pouvoir passer le contenu/body d'une requête genre POST par fichier, ce qu'on peut faire en ligne de commande comme ça : curl -d @formdata.txt http://truc.com J'ai pas trouvé moyen via LWP, mais je suis tombé* sur la classe *Furl *-- "Lightning-fast URL fetcher" (pas testée) qui a l'air de permettre de spécifier un filehandle pour le contenu : $furl->request([$request,] %args) :Furl::Response Sends an HTTP request to a specified URL and returns a instance of Furl::Response . *%args* might be: ... content : Str | ArrayRef[Str] | HashRef[Str] | FileHandle Content to request. https://metacpan.org/pod/Furl k * via l'excellent comparatif "CPAN modules for making HTTP requests" de Neil Bowers http://neilb.org/reviews/http-requesters.html 2016-04-05 0:15 GMT+08:00 Dominique Asselineau < asseline at telecom-paristech.fr>: > Bonjour, > > En fait, ça concerne plus précisément la classe HTTP::Message héritée > par HTTP::Request. > > La méthode content impose qu'on lui fournisse une chaîne d'octets et > comme les données peuvent être volumineuses, j'aurais souhaité un > moyen de passer soit un nom de fichier, soit un handle sur le fichier. > J'ai tout de même remarqué la méthode content_ref qui éviterait une > copie pour la transmission des données. J'ai également vu qu'on > pouvait effectivement passer un fichier mais seulement dans le cas de > multipart, pour simuler un upload de fichier donc. > > Y a-t-il un moyen de passer un handle ou un nom de fichier à un objet > de classe HTTP::Request, ou dois-je me contenter de la méthode > content_ref ? À moins qu'il existe une classe plus puissante pour ce > genre d'opération ? > > Merci de votre aide. > > Dominique > > -- > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From damien at krotkine.com Tue Apr 5 15:33:08 2016 From: damien at krotkine.com (Damien Krotkine) Date: Tue, 05 Apr 2016 15:33:08 +0200 Subject: [Perl] =?iso-8859-1?q?HTTP=3A=3ARequest_m=E9thode_content?= In-Reply-To: References: <20160404161549.GA13866@telecom-paristech.fr> Message-ID: <1459863188.1756843.569567465.0F552045@webmail.messagingengine.com> On Tue, Apr 5, 2016, at 12:07 PM, Kai Carver wrote: > Hello, > > Si j'ai bien compris tu veux pouvoir passer le contenu/body d'une > requête genre POST par fichier, ce qu'on peut faire en ligne de > commande comme ça : > >> curl -d @formdata.txt http://truc.com > > J'ai pas trouvé moyen via LWP, mais je suis tombé* sur la classe *Furl > *-- "Lightning-fast URL fetcher" (pas testée) qui a l'air de permettre > de spécifier un filehandle pour le contenu : J'ai testé Furl un temps, très bien. Rapide et pas trop comlexe à utiliser. > $furl->request([$request,] %args) :Furl::Response > Sends an HTTP request to a specified URL and returns a instance of > Furl::Response[1]. > *%args* might be: > ... content : Str | ArrayRef[Str] | HashRef[Str] | FileHandle > Content to request. > https://metacpan.org/pod/Furl > > k > > * via l'excellent comparatif "CPAN modules for making HTTP requests" > de Neil Bowers > http://neilb.org/reviews/http-requesters.html > > 2016-04-05 0:15 GMT+08:00 Dominique Asselineau paristech.fr>: >> Bonjour, >> >> En fait, ça concerne plus précisément la classe HTTP::Message >> héritée >> par HTTP::Request. >> >> La méthode content impose qu'on lui fournisse une chaîne d'octets et >> comme les données peuvent être volumineuses, j'aurais souhaité un >> moyen de passer soit un nom de fichier, soit un handle sur le >> fichier. >> J'ai tout de même remarqué la méthode content_ref qui éviterait une >> copie pour la transmission des données.  J'ai également vu qu'on >> pouvait effectivement passer un fichier mais seulement dans le >> cas de >> multipart, pour simuler un upload de fichier donc. >> >> Y a-t-il un moyen de passer un handle ou un nom de fichier à >> un objet >> de classe HTTP::Request, ou dois-je me contenter de la méthode >> content_ref ?  À moins qu'il existe une classe plus puissante >> pour ce >> genre d'opération ? >> >> Merci de votre aide. >> >> Dominique >> >> -- >> _______________________________________________ >> Perl mailing list Perl at mongueurs.net >> http://listes.mongueurs.net/mailman/listinfo/perl > _________________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl Links: 1. https://metacpan.org/pod/Furl::Response -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From asseline at telecom-paristech.fr Tue Apr 5 20:00:21 2016 From: asseline at telecom-paristech.fr (Dominique Asselineau) Date: Tue, 5 Apr 2016 20:00:21 +0200 Subject: [Perl] =?iso-8859-1?q?HTTP=3A=3ARequest_m=E9thode_content?= In-Reply-To: References: <20160404161549.GA13866@telecom-paristech.fr> Message-ID: <20160405180021.GA15045@telecom-paristech.fr> Kai Carver wrote on Tue, Apr 05, 2016 at 06:07:11PM +0800 > Hello, > > Si j'ai bien compris tu veux pouvoir passer le contenu/body d'une requête > genre POST par fichier, ce qu'on peut faire en ligne de commande comme ça : > > curl -d @formdata.txt http://truc.com > > > J'ai pas trouvé moyen via LWP, mais je suis tombé* sur la classe *Furl *-- > "Lightning-fast URL fetcher" (pas testée) qui a l'air de permettre de > spécifier un filehandle pour le contenu : > $furl->request([$request,] %args) :Furl::Response En effet, et c'est packagé Debian, la distribution Linux que j'utilise. Par contre, je ne trouve pas dans la doc la façon de passer simplement une authentification (login, password). Dominique > > Sends an HTTP request to a specified URL and returns a instance of > Furl::Response . > > *%args* might be: > ... > content > : Str | ArrayRef[Str] | HashRef[Str] | FileHandle > > Content to request. > https://metacpan.org/pod/Furl > > k > > * via l'excellent comparatif "CPAN modules for making HTTP requests" de > Neil Bowers > http://neilb.org/reviews/http-requesters.html > > 2016-04-05 0:15 GMT+08:00 Dominique Asselineau < > asseline at telecom-paristech.fr>: > > > Bonjour, > > > > En fait, ça concerne plus précisément la classe HTTP::Message héritée > > par HTTP::Request. > > > > La méthode content impose qu'on lui fournisse une chaîne d'octets et > > comme les données peuvent être volumineuses, j'aurais souhaité un > > moyen de passer soit un nom de fichier, soit un handle sur le fichier. > > J'ai tout de même remarqué la méthode content_ref qui éviterait une > > copie pour la transmission des données. J'ai également vu qu'on > > pouvait effectivement passer un fichier mais seulement dans le cas de > > multipart, pour simuler un upload de fichier donc. > > > > Y a-t-il un moyen de passer un handle ou un nom de fichier à un objet > > de classe HTTP::Request, ou dois-je me contenter de la méthode > > content_ref ? À moins qu'il existe une classe plus puissante pour ce > > genre d'opération ? > > > > Merci de votre aide. > > > > Dominique > > > > -- > > _______________________________________________ > > Perl mailing list > > Perl at mongueurs.net > > http://listes.mongueurs.net/mailman/listinfo/perl > > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl -- From kaicarver at gmail.com Thu Apr 7 17:28:35 2016 From: kaicarver at gmail.com (Kai Carver) Date: Thu, 7 Apr 2016 23:28:35 +0800 Subject: [Perl] =?utf-8?q?HTTP=3A=3ARequest_m=C3=A9thode_content?= In-Reply-To: <20160405180021.GA15045@telecom-paristech.fr> References: <20160404161549.GA13866@telecom-paristech.fr> <20160405180021.GA15045@telecom-paristech.fr> Message-ID: 2016-04-06 2:00 GMT+08:00 Dominique Asselineau < asseline at telecom-paristech.fr>: > Par contre, je ne trouve pas dans la doc la façon de passer simplement > une authentification (login, password). > on peut utiliser un objet HTTP::Request avec Furl, et donc utiliser *authorization_basic()* exemple qui marche: use Furl; use HTTP::Request::Common; my $req = GET 'http://httpbin.org/basic-auth/kai/sekret'; $req->authorization_basic('kai','sekret'); my $res = Furl->new()->request($req); print $res->status_line; il y a aussi la méthode ou on passe simplement le login/passwd avec l'URL: http://user:passwd at httpbin.org/basic-auth/user/passwd -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From philippe.delavalade at orange.fr Fri Apr 8 16:55:24 2016 From: philippe.delavalade at orange.fr (Philippe Delavalade) Date: Fri, 8 Apr 2016 16:55:24 +0200 Subject: [Perl] =?utf-8?q?Message_ind=C3=A9sirable?= In-Reply-To: References: <20160331232324.GA1259@magellan.home> <20160401105714.GA2500@magellan.home> Message-ID: <20160408145524.GA2210@messier31> Le dimanche 03 avril à 23:08, Olivier Mengué a écrit : > Le 1 avril 2016 à 12:57, Philippe Delavalade > a écrit : > > > Le vendredi 01 avril à 01:39, pierrick dintrat a écrit : > > > Bonjour, > > > Tu peux utilser le module experimentals : > > > http://search.cpan.org/~dconway/experimentals-0.016/lib/experimentals.pm > > > > Merci pour le lien. Cela dit, j'ai télécharger le tarball, décompressé (pas > > moi :-)), configuré, lancé make puis ... make test mais là ça coince. > > > > > > Tout ça à la main ? > Tu n'utilises pas de client CPAN ? Si bien sûr mais comme ça ne fonctionnait pas, j'ai fait à la main pour savoir plus précisément où ça coinçait. -- Ph. Delavalade From emmanuel at seyman.fr Thu Apr 14 22:31:58 2016 From: emmanuel at seyman.fr (Emmanuel Seyman) Date: Thu, 14 Apr 2016 22:31:58 +0200 Subject: [Perl] =?iso-8859-1?q?Journ=E9es_Perl_2016?= Message-ID: <20160414203158.GA1606@orient> Bonjour à tous. Les Journées Perl auront lieu le 24 et 25 juin cette année (ça tombe un vendredi et un samedi comme l'année dernière). Le site web a été re-actualisé et nous cherchons des conférenciers pour remplir les deux jours. Les propositions (qu'elles soient pour des conférences en anglais ou en français) seront toutes étudiées avec attention. La soumission d'une conférence se fait ici : http://journeesperl.fr/fpw2016/newtalk Nous prévoyons de fixer le programme le 3 juin. Vous avez jusqu'à cette date là pour soumettre votre proposition. Emmanuel