From the Foreach section of the perlsyn POD:
Foreach Loops
The "foreach" loop iterates over a normal list value and sets
the variable VAR to be each element of the list in turn. If
the variable is preceded with the keyword "my", then it is
lexically scoped, and is therefore visible only within the
loop. Otherwise, the variable is implicitly local to the
loop and regains its former value upon exiting the loop. If
the variable was previously declared with "my", it uses that
variable instead of the global one, but it's still localized
to the loop. This implicit localisation occurs only in a
"foreach" loop.
The variable $open is local to the loop and regains its former value at the end of the loop. You're calling &view with a localized package variable that is uninitialized.
Use a lexical iterator instead so that the anonymous subroutine definition keeps a reference to the $open that exists at the time of the definition. Change this:
foreach $open (@deleted)
{
....
}
to this:
foreach my $open (@deleted)
{
...
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|