http://qs321.pair.com?node_id=58414


in reply to Weird Results From MS-SQL Value

$rs is a reference, and in the double-quotes, its value gets printed out, as requested -- what Perl interprets your print as :"print the value of $rs, then the string "->fields(0)->value"...

Believe it or not, this is Working as Advertised, but it's one of the gotchas when dealing with objects (and, more generally, references).

My usual way of getting around this is to either use :

printf "The username is %s\n", $rs->fields(0)->value;

or print out a list:

print "The username is ", $rs->fields(0)->value, "\n";

There's another way where you can just wrap the whole thing in a set of double-quotes, but I always forget the syntax of it ... (print "@{ [ $obj->method ] }", but (a) it looks nasty (b) it will confuse you and (c) It looks REALLY NASTY =). I think the only reason it's there is to scare people about Perl syntax ... >=)

Philosophy can be made out of anything. Or less -- Jerry A. Fodor

Replies are listed 'Best First'.
Re: Re: Weird Results From MS-SQL Value
by enoch (Chaplain) on Feb 14, 2001 at 23:18 UTC
    Yea, I just got that about a minute ago. I changed the line
    print "The username is $RS->Fields(0)->value";
    to
    print "The username is " . $RS->Fields(0)->value;
    And now it is working like a charm. Thanks.

    Jeremy