ramki067 has asked for the wisdom of the Perl Monks concerning the following question:

've a perl script which displays a table with hyperlinks on a browser. When i use,
< a href="http://www.xyz.com">7231-R</a>
I'm able to get the hyperlink-ed "7231-R" text displayed on the browser and thereby when i click on 7213-R it takes me to the desired page. But for the other link in the table on webpage, i'm using if else condition in the perl script and assigning hyperlink to a variable as below:
if($astatus eq "PASS" && $kstatus eq "PASS"){ $value = "< a href=\"http://www.xyz.com\">7231-R</a>";} elsif($astatus eq "FAIL" || $kstatus eq "FAIL"){ $value = "NA";}
Now, i'm displaying $value in the other column of the table. Here, i should also be getting a 7231-R with hyperlink if the if condition is true, but i'm only getting the text 7231-R without the hyperlink. What could be the problem? Kindly help. Thanks in advance, Sharath

Replies are listed 'Best First'.
Re: Perl script hyperlinks not getting displayed in browser
by Happy-the-monk (Canon) on Sep 07, 2013 at 11:20 UTC

    ...$value = "< a href=\"http://www.xyz.com\">7231-R</a>"; ...

    ...displaying $value in the other column of the table. Here, i should also be getting a 7231-R with hyperlink if the if condition is true, but i'm only getting the text 7231-R without the hyperlink. What could be the problem?

    Either your browser does not like the blank in
    < a
     ^
    or you are overwriting $value elsewhere between calculation and presentation/printing,
    my guess.


    Update:

    if($astatus eq "PASS" && $kstatus eq "PASS"){

    Unrelated, but otherwise relevant...
    you can say "AND" as && (strong precedence) and as and (weak precedence).

    Your line will probably do what you meant to do when you use parentheses to remedy &&'s strong precedence as

    if( ($astatus eq "PASS") && ($kstatus eq "PASS") ){

    or even better with the operator and as

    if( $astatus eq "PASS" and $kstatus eq "PASS" ){

    Cheers, Sören

    Créateur des bugs mobiles - let loose once, run everywhere.
    (hooked on the Perl Programming language)

      Your line will probably do what you meant to do when you use parentheses to remedy &&'s strong precedence ...

      While  && has higher precedence than the  and operator, both have lower precedence than the comparison operators. In this case, parenthesization of expression terms is redundant; there will be no effect on the evaluation of the expression. See perlop.

      Such redundant parenthesization is often suggested as a documentary measure to clarify precedence for future maintainers, a practice I tend to endorse.

Re: Perl script hyperlinks not getting displayed in browser
by moritz (Cardinal) on Sep 07, 2013 at 17:39 UTC