exit: zahada
Jiri Polcar
polcar na physics.muni.cz
Čtvrtek Leden 30 17:49:08 MET 2003
Jiste ze se vola, prece nasleduje tesne za
print STDERR "$0: ERROR: Cannot run: $co\n";
ktery se obevi na vystupu.
Mezitim jsem prisel na to, ze problem je v kombinaci 'eval' vs. 'system',
jakmile se jako argument evalu pouzije neco, co perl neschroustne,
napr:
eval 'hohoho';
tak se exit() chova mravne a skript zkonci.
On Thu, Jan 30, 2003 at 05:44:40PM +0100, Honza Pazdziora wrote:
> On Thu, Jan 30, 2003 at 05:04:22PM +0100, Jiri Polcar wrote:
> > Zdravim,
> >
> > prave jsem se potkal ze zahadou. Spript vesele pokracuje i po volani fce
> > exit():
> >
> > ---cite---
> > #!/usr/bin/perl -w
> >
> > if ( doCommand ('eeeecho pepa') ) {
> > print "Podminka splnena\n";
> > } else {
> > print "Podminka NEsplnena\n";
> > }
>
> [...]
>
> > sub doCommand {
> > my ( $co ) = @_;
> >
> > {
> > local $SIG{__WARN__} = sub { die @_ };
> > eval { system $co };
> > }
> >
> > if ( $@ ) {
> > print STDERR "$0: ERROR: Cannot run: $co\n";
> > exit 1;
> > }
> >
> > print "OK\n";
> >
> > return 1;
> > }
> > ---cite---
> >
> > predpokladam, ze neco co by se dalo pustit se nejmenuje 'eeeecho'. Zde
> > posilam jeste vystup:
> >
> >
> > ---cite---
> > ./t41.pl: ERROR: Cannot run: eeeecho pepa
> > OK
> > Podminka splnena
> > KONEC
> > ---cite---
> >
> > Muze me nekdo vysvetlit, tak to, ze fce exit() neukonci beh skriptu?
>
> Protoze se nevola. Co Vas vede k presvedceni, ze ten system selze? Ten
> system se vrati s uspechem.
>
> --
> ------------------------------------------------------------------------
> Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
> ... all of these signs saying sorry but we're closed ...
> ------------------------------------------------------------------------
--
JP
Další informace o konferenci Perl