OVH Cloud OVH Cloud

pb dans un tout petit script perl

3 réponses
Avatar
ecureuil
bonjour,

J'ai un pb avec ce tout petit script

#!/usr/bin/perl -w

use strict;

# pas très propre le join... Manière rapide de récupérer toute l'entrée
# standard dans une seule variable
my $message = join( "", <>) ;

my $nom_msg = "/tmp/msg_corps1";
if (open(AJOUT, ">$nom_msg") )
{
print AJOUT "$messages\n"; # ligne 58
close AJOUT;
}

2006-05-18 17:54:08.902967500 delivery 452: deferral:
Global_symbol_"$messages"_requires_explicit_package_name_at_/home/e-smith/files/users/zoro/home/bin/mailman.pl_line_58,_<>_line_384./Execution_of_/home/e-smith/files/users/zoro/home/bin/mailman.pl_aborted_due_to_compilation_errors./
2006-05-18 17:54:08.902993500 status: local 0/10 remote 0/20

j'ai essayé
print AJOUT $messages;

Il doit y avoir une énormité!
Si vous la voyez...

anne

3 réponses

Avatar
cwpbl
bonjour,

J'ai un pb avec ce tout petit script

#!/usr/bin/perl -w

use strict;

# pas très propre le join... Manière rapide de récupérer toute l'entrée
# standard dans une seule variable


Sans join :
undef $/;
my $message=<>;

my $message = join( "", <>) ;

my $nom_msg = "/tmp/msg_corps1";
if (open(AJOUT, ">$nom_msg") )
{
print AJOUT "$messagesn"; # ligne 58
close AJOUT;
}


Le "s" de message en trop !

Avatar
ecureuil
"cwpbl" a écrit dans le message de news:
446ca78b$0$2219$
| > bonjour,
| >
| > J'ai un pb avec ce tout petit script
| >
| > #!/usr/bin/perl -w
| >
| > use strict;
| >
| > # pas très propre le join... Manière rapide de récupérer toute l'entrée
| > # standard dans une seule variable
|
| Sans join :
| undef $/;
| my $message=<>;
|
| > my $message = join( "", <>) ;
| >
| > my $nom_msg = "/tmp/msg_corps1";
| > if (open(AJOUT, ">$nom_msg") )
| > {
| > print AJOUT "$messagesn"; # ligne 58
| > close AJOUT;
| > }
|
| Le "s" de message en trop !

cela fonctionne! ;o)

merci
anne
Avatar
tuser
cwpbl wrote:
Sans join :
undef $/;
my $message=<>;


encore mieux (vu dans le livre "Perl Best Practices" de Damian Conway):

my $message = do { local $/; <> };

Dans ce contexte, Damian Conway parle aussi d'un module "Perl6::Slurp",
mais je n'ai pas encore essayé ce module.