http://www.perlmonks.org?node_id=910045


in reply to Re^2: Extracting Unique elements
in thread Extracting Unique elements

Just use a %seen hash like demonstrated in the resource I linked you to. It will enable you to filter out any duplicates as you go just as easily as removing duplicates after the fact.

Replies are listed 'Best First'.
Re^4: Extracting Unique elements
by smandape1 (Acolyte) on Jun 17, 2011 at 17:06 UTC

    Hey Thanks a lot. I got it. I greatly appreciate your help. I have another small issue. when I get the array of something I extract, I try to print them using the code

    if (ref($bar) eq "ARRAY") { foreach my $q (@$bar){ print FH $q ,","; } } else { print FH $bar; }

    But, this doesn't seem to be of help. I want to do something that if its an array separate them by ',' else just print the individual without ','. But when I use the above code it also prints the single element with a ',' and in an array it gives ',' after the last element. I know how to solve the same issue in XSLT its something like

    <xsl:test if position() != last()> <xsl:value-of select="."/>; </xsl:test> <xsl:test if position() = last()> <xsl:value-of select="."/> </xsl:test>

    Thus everything is separated by ';' except for the last element and if its only a single element then it gets printed as it is. Can I do something same in perl, can you please help. Thank you, Sammed

      Just use join instead of a loop:

      print FH ref($bar) eq "ARRAY" ? join(',', @$bar) : $bar;
Re^4: Extracting Unique elements
by smandape1 (Acolyte) on Jun 21, 2011 at 03:09 UTC

    Thanks Wind. I really appreciate your help. Okay, while I was playing around with perl code, I found something interesting. Probably you can explain it to me in better way. I was trying to use get() for a webquery. Something like below:

    $url = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=$d +b1&id=$query&retmode=text&rettype=abstract"; $data = get($url);

    when I put $url in single quotes it doesn't work with the $db and $query but if I put it in double quotes it works. Why is it so, what is the relation between quotes and scalar quantity? It would be really nice if you can explain this to me. Thank you, Sammed