Le TeXnicien de surface
2012-11-23 18:42:25 UTC
bonjour à toutes et tous
j'ai un hachage de fonctions :
my %MACROS=(
B => \&textbold,
); # à compléter
sub textbold{
my ($T,@pbl) = @_;
$T = "<b>$T</b>";
return $T;
}
en début de fichier
quand je fais un appel direct comme
$texte = $MACROS{B}("en gras");
print "$texte\n";
tout baigne
mais je voudrais pouvoir remplacer
@B{un truc à mettre en gras}
et j'essaie ceci :
à un moment j'ai
# $li contient du texte et sans ce qui suit, tout va bien
$li = &developperaux($li) if($li =~ m/\@/);
# puis je voudrais reprendre avec $li où les @B{machin} ont été
# remplacés correctement
et plus bas
sub developperaux{
my ($L,@pbl) = @_;
$L =~ s/\@([^{]+){([^}]+)}/\$MACROS{$1}($2)/eg;
return $L;
}
j'ai alors
Use of uninitialized value in subroutine entry at ./R2html.pl line 129,
<SOURCE> line 32.
Undefined subroutine &main:: called at ./R2html.pl line 129, <SOURCE>
line 32.
La ligne 129 correspond à la ligne contenant
la tentative de remplacement dans le sub.
Si quelqu'un pouvait m'éclairer, je lui en serai très reconnaissant.
j'ai un hachage de fonctions :
my %MACROS=(
B => \&textbold,
); # à compléter
sub textbold{
my ($T,@pbl) = @_;
$T = "<b>$T</b>";
return $T;
}
en début de fichier
quand je fais un appel direct comme
$texte = $MACROS{B}("en gras");
print "$texte\n";
tout baigne
mais je voudrais pouvoir remplacer
@B{un truc à mettre en gras}
et j'essaie ceci :
à un moment j'ai
# $li contient du texte et sans ce qui suit, tout va bien
$li = &developperaux($li) if($li =~ m/\@/);
# puis je voudrais reprendre avec $li où les @B{machin} ont été
# remplacés correctement
et plus bas
sub developperaux{
my ($L,@pbl) = @_;
$L =~ s/\@([^{]+){([^}]+)}/\$MACROS{$1}($2)/eg;
return $L;
}
j'ai alors
Use of uninitialized value in subroutine entry at ./R2html.pl line 129,
<SOURCE> line 32.
Undefined subroutine &main:: called at ./R2html.pl line 129, <SOURCE>
line 32.
La ligne 129 correspond à la ligne contenant
la tentative de remplacement dans le sub.
Si quelqu'un pouvait m'éclairer, je lui en serai très reconnaissant.
--
Le TeXnicien de surface
Le TeXnicien de surface