in reply to How to compare two subroutine return values, to trigger email

First up, &DB_query1 probably isn't doing what you think. Use DB_query1() instead. Given that change as far as I can tell all you need do is:

if (DB_query1() ne DB_query2()) { # Do stuff here if the strings don't match }
True laziness is hard work

Replies are listed 'Best First'.
Re^2: How to compare two subroutine return values, to trigger email
by anakin30 (Acolyte) on Sep 20, 2012 at 09:55 UTC

    Suppose the return result from subroutine query_LDAP and query_AD should be compared,but here the comparison not working.

    i have no idea what is wrong here, please advice dear monks..

    i have provided my source codes here, please assist..

    sub query_LDAP { $ldap = Net::LDAP->new( 'hostname' ); $mesg = $ldap->bind( 'uid=username,ou=xxxx,o=bbb', password => 'secret' ); $result = $ldap->modify( "uid=username,ou=xxxx,o=bbb", replace => {"name" => "star wars"} ); $result->code && warn "failed to add entry: ", $result->error ; $result = $ldap->search ( base => "ou=xxxx,o=bbb", filter => "uid=username" ) or die ("Failed on search.$!"); foreach my $entry ($result->entries) { my $LDAP_name= $entry->get_value( "name" ); print "Query Result from LDAP : ",$LDAP_name,"\n";} $mesg= $ldap->unbind;} # take down session sub query_AD { $ldap = Net::LDAP->new('hostname') or die "$0"; $mesg = $ldap->bind( 'cn=username,ou=somecontainer,DC=com', password => 'secret'); $result = $ldap->search(base => "ou=somecontainer,DC=com", filter=> "cn=username" ) or die ("Failed on search.$!"); foreach my $entry ($result->entries){ my $AD_name= $entry->get_value( "name" ); print "Query Result from AD : ",$AD_name,"\n";} $mesg= $ldap->unbind;} # take down session if (query_LDAP() ne query_AD()) { print "not identical!!!!\n";} else{ print "its the same\n";}
      Hi anakin30,

      I believe GrandFather was under the impression that your query_LDAP and query_AD functions would return the results of the queries, instead of printing them to the screen.

      If you return $LDAP_name; and return $AD_name; at the end of each function, your comparison should do what you want.