<p>I had the same error and I solved by removing <code>defined</code> and writing only <code>if (%$rref)</code> in the mummerplot code. You have to do this for all the lines that you have it. There should be six lines to correct in this way .</p>
<p>You can find an explanation of why <a href="https://perldoc.perl.org/functions/defined" rel="nofollow noreferrer">here</a>, that tells that the function <code>defined</code>:</p>
<blockquote>
<p>Returns a Boolean value telling whether EXPR has a value other than the undefined value undef. If EXPR is not present, $_ is checked.</p>
</blockquote>
<p>And then:</p>
<blockquote>
<p>Use of <code>defined</code> on aggregates (hashes and arrays) is no longer supported. It used to report whether memory for that aggregate had ever been allocated. You should instead use a simple test for size:
<code>if (%a_hash)   { print &quot;has hash members\n&quot;   } </code></p>
</blockquote>

CC BY-SA 4.0
2021-06-03T12:16:34.040Z
@KamilSJaron thank you but to be honest the code is written in C and I am not really expert on this. Anyway, I tried to add more details that is what has helped to me .
HelpNeederStudent
CC BY-SA 4.0
2021-06-03T12:21:26.293Z
This is totally enough for people to get the idea that it's just an outdated part of the code, good job in figuring it out!
Kamil S Jaron
CC BY-SA 4.0
2021-06-03T06:50:14.753Z
2021-06-03T12:13:50.243Z
2021-06-03T12:13:50.243Z
HelpNeederStudent
<p>My third year comp sci friend got me this far, I hope you guys can help me with the last inch! For the record, I have practically no coding experience. I am using the 3.9.4 alpha version of MUMmer.</p>
<p>Here is the manual I have been following: <a href="http://mummer.sourceforge.net/examples/" rel="nofollow noreferrer">http://mummer.sourceforge.net/examples/</a></p>
<p>I am at part 2.2.2 Running the Mummer plot, and I type in the final line to generate the plot.</p>
<p>I type:</p>
<p><code>mummerplot -x &quot;[0,8666124]&quot; -y &quot;[0,9025688]&quot; -postscript -p mummer mummer.mums</code></p>
<p>And the error is:</p>
<pre><code>Can't use 'defined(%hash)' (Maybe you should omit the defined ()?) at /usr/bin/mummerplot line 884
</code></pre>
<p>Line at 884:</p>
<pre><code>if ( defined (%<span class="math-container">$rref) ) {                                                                                                            #-- skip reference sequence or set atts from hash
        if ( !exists ($rref-&gt;{$idR}) ) { next; }
        else { ($refoff, $reflen, $refdir) = @{$rref-&gt;{$</span>idR}}; }
</code></pre>
<p>Its perl</p>

CC BY-SA 4.0
2020-12-03T08:26:24.360Z
Hi could you please present your code inline, e.g. copy and paste? It is hard to read as an image. This looks like Perl, could you confirm this?
M__
CC BY-SA 4.0
2020-12-03T16:36:01.817Z
Cross-posted on biostars: https://www.biostars.org/p/476874/
Ram RS
<errors>
MUMmer plot error. Line 884. What to do?
# MUMmer plot error. Line 884. What to do?

(Asked by: username_0 on 2020-12-03)

My third year comp sci friend got me this far, I hope you guys can help me with the last inch! For the record, I have practically no coding experience. I am using the 3.9.4 alpha version of MUMmer.
Here is the manual I have been following: http://mummer.sourceforge.net/examples/
I am at part 2.2.2 Running the Mummer plot, and I type in the final line to generate the plot.
I type:
mummerplot -x "[0,8666124]" -y "[0,9025688]" -postscript -p mummer mummer.mums
And the error is:
Can't use 'defined(%hash)' (Maybe you should omit the defined ()?) at /usr/bin/mummerplot line 884

Line at 884:
if ( defined (%$rref) ) {                                                                                                            #-- skip reference sequence or set atts from hash
        if ( !exists ($rref->{$idR}) ) { next; }
        else { ($refoff, $reflen, $refdir) = @{$rref->{$idR}}; }

Its perl

**Tags:** errors
> **Comments:**
> **username_1**: Hi could you please present your code inline, e.g. copy and paste? It is hard to read as an image. This looks like Perl, could you confirm this?  
> **username_2**: Cross-posted on biostars: https://www.biostars.org/p/476874/  

---

## 1 answers

### Answer by username_3 on 2021-06-03. Score: 2

I had the same error and I solved by removing `defined` and writing only `if (%$rref)` in the mummerplot code. You have to do this for all the lines that you have it. There should be six lines to correct in this way .

You can find an explanation of why [here](https://perldoc.perl.org/functions/defined), that tells that the function `defined`:

> Returns a Boolean value telling whether EXPR has a value other than the undefined value undef. If EXPR is not present, $\_ is checked.

And then:

> Use of `defined` on aggregates (hashes and arrays) is no longer supported. It used to report whether memory for that aggregate had ever been allocated. You should instead use a simple test for size:
> `if (%a_hash) { print "has hash members\n" }`

> **Comments:**
> **username_3**: @KamilSJaron thank you but to be honest the code is written in C and I am not really expert on this. Anyway, I tried to add more details that is what has helped to me .  
> **username_4**: This is totally enough for people to get the idea that it's just an outdated part of the code, good job in figuring it out!  

---

