A première vue, je dirais que $id pourrait ne pas être initialisé si la regexp ne match pas. Exemple plus simple: #! /usr/bin/perl use strict; use warnings; #my $img = "toto"; my $img = "1234"; my $user = "blah"; my ($id) = ($img =~ /d+/); my ($page) = "https://www.flickr.com/photos/$user/$id/"; print $page, "n";
In fr.comp.lang.perl Jo Engo <yl@icite.fr> wrote:
my ($id) = ($img =~ m@/d+/(d+)_([da-f]+)_@si);
A première vue, je dirais que $id pourrait ne pas être initialisé
si la regexp ne match pas.
Exemple plus simple:
#! /usr/bin/perl
use strict;
use warnings;
#my $img = "toto";
my $img = "1234";
my $user = "blah";
my ($id) = ($img =~ /d+/);
my ($page) = "https://www.flickr.com/photos/$user/$id/";
A première vue, je dirais que $id pourrait ne pas être initialisé si la regexp ne match pas. Exemple plus simple: #! /usr/bin/perl use strict; use warnings; #my $img = "toto"; my $img = "1234"; my $user = "blah"; my ($id) = ($img =~ /d+/); my ($page) = "https://www.flickr.com/photos/$user/$id/"; print $page, "n";
Nicolas George
Marc SCHAEFER , dans le message <qem6re$n41$, a écrit :
In fr.comp.lang.perl Jo Engo wrote:
my ($id) = ($img =~ m@/d+/(d+)_([da-f]+));
A première vue, je dirais que $id pourrait ne pas être initialisé si la regexp ne match pas.
Exactement.
Marc SCHAEFER , dans le message <qem6re$n41$1@shakotay.alphanet.ch>, a
écrit :
In fr.comp.lang.perl Jo Engo <yl@icite.fr> wrote:
my ($id) = ($img =~ m@/d+/(d+)_([da-f]+)_@si);
A première vue, je dirais que $id pourrait ne pas être initialisé
si la regexp ne match pas.
Marc SCHAEFER , dans le message <qem6re$n41$, a écrit :
In fr.comp.lang.perl Jo Engo wrote:
my ($id) = ($img =~ m@/d+/(d+)_([da-f]+));
A première vue, je dirais que $id pourrait ne pas être initialisé si la regexp ne match pas.
Exactement.
Sergio
Le 22/06/2019 à 22:03, Jo Engo a écrit :
Bonjour, Je tente de débugger webcollage de xscreensaver, c'est du perl, car il me sort l'erreur suivante : Use of uninitialized value $id in concatenation (.) or string at /usr/lib/ xscreensaver/webcollage line 2159. or voici les lignes 2158 et 2159 : my ($id) = ($img =~ m@/d+/(d+)_([da-f]+)); my ($page) = "https://www.flickr.com/photos/$user/$id/"; $id me semble bel et bien être initialisé, non ??
Peut-être faut-il échapper le . ? my ($page) = "https://www.flickr.com/photos/$user/$id/"; -- Serge http://cahierdesergio.free.fr/ Soutenez le libre: http://www.framasoft.org
Le 22/06/2019 à 22:03, Jo Engo a écrit :
Bonjour,
Je tente de débugger webcollage de xscreensaver, c'est du perl, car il me
sort l'erreur suivante :
Use of uninitialized value $id in concatenation (.) or string at /usr/lib/
xscreensaver/webcollage line 2159.
or voici les lignes 2158 et 2159 :
my ($id) = ($img =~ m@/d+/(d+)_([da-f]+)_@si);
my ($page) = "https://www.flickr.com/photos/$user/$id/";
$id me semble bel et bien être initialisé, non ??
Peut-être faut-il échapper le . ?
my ($page) = "https://www.flickr.com/photos/$user/$id/";
--
Serge http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Bonjour, Je tente de débugger webcollage de xscreensaver, c'est du perl, car il me sort l'erreur suivante : Use of uninitialized value $id in concatenation (.) or string at /usr/lib/ xscreensaver/webcollage line 2159. or voici les lignes 2158 et 2159 : my ($id) = ($img =~ m@/d+/(d+)_([da-f]+)); my ($page) = "https://www.flickr.com/photos/$user/$id/"; $id me semble bel et bien être initialisé, non ??
Peut-être faut-il échapper le . ? my ($page) = "https://www.flickr.com/photos/$user/$id/"; -- Serge http://cahierdesergio.free.fr/ Soutenez le libre: http://www.framasoft.org
Jo Engo
Le Sat, 22 Jun 2019 23:33:34 +0200, Marc SCHAEFER a écrit :
A première vue, je dirais que $id pourrait ne pas être initialisé si la regexp ne match pas.
Ça doit être ça, je n'ai plus qu'à travailler autour, mais comment ? Serait-ce flickr qui a changé la forme de ses uri ? -- Une hésitation, quelle qu'elle soit, est un signe de décrépitude mentale chez les jeunes et de faiblesse physique chez les vieux. -+- Oscar Wilde -+-
Le Sat, 22 Jun 2019 23:33:34 +0200, Marc SCHAEFER a écrit :
A première vue, je dirais que $id pourrait ne pas être initialisé si la
regexp ne match pas.
Ça doit être ça, je n'ai plus qu'à travailler autour, mais comment ?
Serait-ce flickr qui a changé la forme de ses uri ?
--
Une hésitation, quelle qu'elle soit, est un signe de décrépitude
mentale chez les jeunes et de faiblesse physique chez les vieux.
-+- Oscar Wilde -+-
Le Sat, 22 Jun 2019 23:33:34 +0200, Marc SCHAEFER a écrit :
A première vue, je dirais que $id pourrait ne pas être initialisé si la regexp ne match pas.
Ça doit être ça, je n'ai plus qu'à travailler autour, mais comment ? Serait-ce flickr qui a changé la forme de ses uri ? -- Une hésitation, quelle qu'elle soit, est un signe de décrépitude mentale chez les jeunes et de faiblesse physique chez les vieux. -+- Oscar Wilde -+-
Marc SCHAEFER
Sergio wrote:
Peut-être faut-il échapper le . ? my ($page) = "https://www.flickr.com/photos/$user/$id/";
Non, car $page n'est pas une regexp; si $page était ensuite utilisée comme regexp il y aurait certainement plein d'échappements à faire. Et d'ailleurs en Perl: my $page = "bla.truc"; est égal à my $page = "bla.truc"; " interpole plus de choses que ' PS: dans le code initial, je me suis demandé d'ailleurs pourquoi toutes ces parenthèses autour des variables: seule effectivement la première variable est définie avec une expression de type liste, donc il faut my ($id), mais on pourrait certainement aussi enlever la liste dans l'expression.
Sergio <serge.laposte@delbono.net.invalid> wrote:
Peut-être faut-il échapper le . ?
my ($page) = "https://www.flickr.com/photos/$user/$id/";
Non, car $page n'est pas une regexp; si $page était ensuite
utilisée comme regexp il y aurait certainement plein d'échappements
à faire.
Et d'ailleurs en Perl:
my $page = "bla.truc";
est égal à
my $page = "bla.truc";
" interpole plus de choses que '
PS: dans le code initial, je me suis demandé d'ailleurs pourquoi
toutes ces parenthèses autour des variables: seule effectivement
la première variable est définie avec une expression de type
liste, donc il faut my ($id), mais on pourrait certainement
aussi enlever la liste dans l'expression.
Peut-être faut-il échapper le . ? my ($page) = "https://www.flickr.com/photos/$user/$id/";
Non, car $page n'est pas une regexp; si $page était ensuite utilisée comme regexp il y aurait certainement plein d'échappements à faire. Et d'ailleurs en Perl: my $page = "bla.truc"; est égal à my $page = "bla.truc"; " interpole plus de choses que ' PS: dans le code initial, je me suis demandé d'ailleurs pourquoi toutes ces parenthèses autour des variables: seule effectivement la première variable est définie avec une expression de type liste, donc il faut my ($id), mais on pourrait certainement aussi enlever la liste dans l'expression.
espie
In article <qena23$9gp$, Marc SCHAEFER wrote:
Sergio wrote:
Peut-être faut-il échapper le . ? my ($page) = "https://www.flickr.com/photos/$user/$id/";
Non, car $page n'est pas une regexp; si $page était ensuite utilisée comme regexp il y aurait certainement plein d'échappements à faire. Et d'ailleurs en Perl: my $page = "bla.truc"; est égal à my $page = "bla.truc"; " interpole plus de choses que ' PS: dans le code initial, je me suis demandé d'ailleurs pourquoi toutes ces parenthèses autour des variables: seule effectivement la première variable est définie avec une expression de type liste, donc il faut my ($id), mais on pourrait certainement aussi enlever la liste dans l'expression.
Non, tu ne peux pas. Il faut une liste si tu veux recuperer les matchs explicitement. Si c'est un scalaire, tu auras juste le fait que ca matche ou pas.
In article <qena23$9gp$1@shakotay.alphanet.ch>,
Marc SCHAEFER <schaefer@alphanet.ch> wrote:
Sergio <serge.laposte@delbono.net.invalid> wrote:
Peut-être faut-il échapper le . ?
my ($page) = "https://www.flickr.com/photos/$user/$id/";
Non, car $page n'est pas une regexp; si $page était ensuite
utilisée comme regexp il y aurait certainement plein d'échappements
à faire.
Et d'ailleurs en Perl:
my $page = "bla.truc";
est égal à
my $page = "bla.truc";
" interpole plus de choses que '
PS: dans le code initial, je me suis demandé d'ailleurs pourquoi
toutes ces parenthèses autour des variables: seule effectivement
la première variable est définie avec une expression de type
liste, donc il faut my ($id), mais on pourrait certainement
aussi enlever la liste dans l'expression.
Non, tu ne peux pas. Il faut une liste si tu veux recuperer les matchs
explicitement.
Si c'est un scalaire, tu auras juste le fait que ca matche ou pas.
Peut-être faut-il échapper le . ? my ($page) = "https://www.flickr.com/photos/$user/$id/";
Non, car $page n'est pas une regexp; si $page était ensuite utilisée comme regexp il y aurait certainement plein d'échappements à faire. Et d'ailleurs en Perl: my $page = "bla.truc"; est égal à my $page = "bla.truc"; " interpole plus de choses que ' PS: dans le code initial, je me suis demandé d'ailleurs pourquoi toutes ces parenthèses autour des variables: seule effectivement la première variable est définie avec une expression de type liste, donc il faut my ($id), mais on pourrait certainement aussi enlever la liste dans l'expression.
Non, tu ne peux pas. Il faut une liste si tu veux recuperer les matchs explicitement. Si c'est un scalaire, tu auras juste le fait que ca matche ou pas.
espie
In article <pan$3ce0f$974dfe90$a0a64b4e$, Jo Engo wrote:
Bon, cette ligne regarde si $img contient un truc qui ressemble a ca /<des chiffres>/<des chiffres a garder>_<des chiffres hexa>_ et va te stocker le resultat dans id. C'est assez moche, surtout vu qu'on a une 2e expression avec parentheses qui ne sert a rien. Faudrait au moins tester que ce bout correspond a qq chose. my $id; unless (($id) = ($img =~ m@/d+/(d+)_([da-f]+))) { print STDERR "$img doesn't match regexpn"; }
In article <pan$3ce0f$974dfe90$a0a64b4e$77089514@icite.fr>,
Jo Engo <yl@icite.fr> wrote:
Use of uninitialized value $id in concatenation (.) or string at /usr/lib/
xscreensaver/webcollage line 2159.
or voici les lignes 2158 et 2159 :
my ($id) = ($img =~ m@/d+/(d+)_([da-f]+)_@si);
Bon, cette ligne regarde si $img contient un truc qui ressemble a ca
/<des chiffres>/<des chiffres a garder>_<des chiffres hexa>_
et va te stocker le resultat dans id.
C'est assez moche, surtout vu qu'on a une 2e expression avec parentheses
qui ne sert a rien.
Faudrait au moins tester que ce bout correspond a qq chose.
my $id;
unless (($id) = ($img =~ m@/d+/(d+)_([da-f]+)_@si)) {
print STDERR "$img doesn't match regexpn";
}
Bon, cette ligne regarde si $img contient un truc qui ressemble a ca /<des chiffres>/<des chiffres a garder>_<des chiffres hexa>_ et va te stocker le resultat dans id. C'est assez moche, surtout vu qu'on a une 2e expression avec parentheses qui ne sert a rien. Faudrait au moins tester que ce bout correspond a qq chose. my $id; unless (($id) = ($img =~ m@/d+/(d+)_([da-f]+))) { print STDERR "$img doesn't match regexpn"; }
Jo Engo
Le Mon, 24 Jun 2019 17:52:53 +0000, Marc Espie a écrit :
my $id; unless (($id) = ($img =~ m@/d+/(d+)_([da-f]+))) { print STDERR "$img doesn't match regexpn";
ok, mais ça changera juste le message d'erreur ^^ à mon avis c'est flickr qui a changé la construction de ses uri d'où pas de match. -- Le vrai moyen d'être trompé, c'est de se croire plus fin que les autres. -+- François de La Rochefoucauld (1613-1680), Maximes 127 -+-
Le Mon, 24 Jun 2019 17:52:53 +0000, Marc Espie a écrit :
my $id;
unless (($id) = ($img =~ m@/d+/(d+)_([da-f]+)_@si)) {
print STDERR "$img doesn't match regexpn";
ok, mais ça changera juste le message d'erreur ^^ à mon avis c'est flickr
qui a changé la construction de ses uri d'où pas de match.
--
Le vrai moyen d'être trompé, c'est de se croire plus fin que les autres.
-+- François de La Rochefoucauld (1613-1680), Maximes 127 -+-
Le Mon, 24 Jun 2019 17:52:53 +0000, Marc Espie a écrit :
my $id; unless (($id) = ($img =~ m@/d+/(d+)_([da-f]+))) { print STDERR "$img doesn't match regexpn";
ok, mais ça changera juste le message d'erreur ^^ à mon avis c'est flickr qui a changé la construction de ses uri d'où pas de match. -- Le vrai moyen d'être trompé, c'est de se croire plus fin que les autres. -+- François de La Rochefoucauld (1613-1680), Maximes 127 -+-
Jo Engo
Le Mon, 24 Jun 2019 17:52:53 +0000, Marc Espie a écrit :
Faudrait au moins tester que ce bout correspond a qq chose. my $id; unless (($id) = ($img =~ m@/d+/(d+)_([da-f]+))) { print STDERR "$img doesn't match regexpn"; }
banco : http:// ne matche pas la regesp il faut que je trouve où $img est initialisé :) -- L'amour ôte l'esprit à ceux qui en ont et en donne à ceux qui n'en ont pas. -+- Denis Diderot -+-
Le Mon, 24 Jun 2019 17:52:53 +0000, Marc Espie a écrit :
Faudrait au moins tester que ce bout correspond a qq chose.
my $id;
unless (($id) = ($img =~ m@/d+/(d+)_([da-f]+)_@si)) {
print STDERR "$img doesn't match regexpn";
}
banco :
http:// ne matche pas la regesp
il faut que je trouve où $img est initialisé :)
--
L'amour ôte l'esprit à ceux qui en ont et en donne à ceux qui n'en ont
pas.
-+- Denis Diderot -+-
Le Mon, 24 Jun 2019 17:52:53 +0000, Marc Espie a écrit :
Faudrait au moins tester que ce bout correspond a qq chose. my $id; unless (($id) = ($img =~ m@/d+/(d+)_([da-f]+))) { print STDERR "$img doesn't match regexpn"; }
banco : http:// ne matche pas la regesp il faut que je trouve où $img est initialisé :) -- L'amour ôte l'esprit à ceux qui en ont et en donne à ceux qui n'en ont pas. -+- Denis Diderot -+-
Nicolas George
Jo Engo , dans le message <pan$bd161$c8240b45$4aea2fd8$, a écrit :
http:// ne matche pas la regesp
Au pif, https?:// devrait débloquer la situation.
Jo Engo , dans le message
<pan$bd161$c8240b45$4aea2fd8$4ecff085@icite.fr>, a écrit :