That worked like a champ! Thanks! Here's what I ended up with:
#this one should fail system("wsub \@ProfileManager:Garbage \@Endpoint:$ep", @args)==0 or exception($ep); #This one should work system("wsub \@ProfileManager:ZZ-Paul-aft_test.pm \@Endpoint:$ep",@args)==0 or exception($ep); sub exception { $passed_ep=shift; #`wsub \@ProfileManager:Exceptions \@Endpoint:$passed_ep`; #print AFTERLOG "$passed_ep no match !!!\n"; print "$passed_ep error !!!\n"; } } "Brett W. McCoy" <[EMAIL PROTECTED]> wrote in message news:<[EMAIL PROTECTED]>... > On Fri, 15 Feb 2002, Paul Farley wrote: > > > I have an application that I am using a perl script to do pattern matching > > and then execute commands specific to that application. I need a way to > > handle an error in my script if one of the `cmd blah`; doesn't work and send > > it to an error subroutine. > > > > Here's what I have now: > > <SNIPPED> > > > > sub subscription > > { > > ($passed_ep,$passed_pr$passed_sub,$passed_org,$passed_plat)=shift; > > > > #add error routine to handle if PR/PM doesn't exist -pass to > > exception_sub? > > `wsub \@ProfileManager:Staging \@Endpoint:$passed_ep`; > > `wln \@Endpoint:$passed_ep \@PolicyRegion:$passed_pr\.$passed_org`; > > `wsub \@ProfileManager:$passed_sub\.$passed_org\.$passed_plat\.ep > > \@Endpoint:$passed_ep`; > > # on error pass ($ep,$pr,$sub,$org,$plat) > > } > > You should use the system command here. You are using `` in a void > context, and it's unnecessary to do so, unless you are doing something > with the output strings. > > I would do something like: > > sub mysub { > ... > system("cmd", @args) == 0 > or die "Error running com: $?\n"; > ... > } > > sub handle_error { > my $error_msg = shift; > > print "$error_msg\n"; > print LOG "$error_msg\n"; > ... > } > > And handle the errors this way: > > eval { > mysub(); > }; > > handle_error($@) if $@; > > See the perldoc on eval -- it provides a fairly easy way to throw and > catch exceptions -- die throws the exception, eval catches it, and puts > the error message from die into $@. > > -- Brett > http://www.chapelperilous.net/ > ------------------------------------------------------------------------ > Alcohol, hashish, prussic acid, strychnine are weak dilutions. The surest > poison is time. > -- Emerson, "Society and Solitude" > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]