Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

Yes, it's safe to do that, if what you want is what it happens to do.

What you get with a foreach loop is that it does the first element in the array, then the second, then the third, and so on, until it runs out. If you change the elements as you go, it doesn't bother Perl; on the second iteration it gives you whatever the second element is at that moment, regardless of what it was when you started the loop. So for example:

@a = (0,1,2); foreach $element (@a) { print $element, "\n"; $a[1] = 'foo'; }

This prints out 0, foo, 2.

Similarly, the loop ends only when Perl runs out of elements, and if you add elements in the middle of the loop, Perl will iterate over the new elements also, until it reaches the current end of the array. This code is an infinite loop:

	@a = (1,2,3);
	foreach $element (@a) {
	  print $element, "\n";
	  push @a, $element+3;
	} 
	  

This prints 1 2 3 4 5 6 7... and so on forever, because it keeps extending the array, and Perl never gets to the end.


In reply to Re: recurse directories? by Dominus
in thread recurse directories? by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • 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.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2024-04-25 17:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found