in reply to Re: Can't start threads inside a BEGIN{} block
in thread Can't start threads inside a BEGIN{} block

No, that's not it. Your problem has nothing to do with thread.

Use «use strict; use warnings;»!!! $num_threads is undef when you execute the BEGIN block.

  1. The file is compiled.
    1. my $num_threads = 2; is compiled.
    2. my $thr = []; is compiled.
    3. BEGIN { ... } is compiled.
      1. ...
      2. for (my $ii=0; $ii<$num_threads; $ii++) { is compiled.
      3. ...
    4. BEGIN { ... } is executed.
      1. ...
      2. for (my $ii=0; $ii<$num_threads; $ii++) { is executed.
      3. ...
    5. print "done\n"; is compiled.
  2. The file is executed.
    1. my $num_threads = 2; is executed.
    2. my $thr = []; is executed.
    3. print "done\n"; is executed.

Replies are listed 'Best First'.
Re^3: Can't start threads inside a BEGIN{} block
by alain_desilets (Beadle) on Sep 26, 2011 at 20:57 UTC
    Duh! Thx.