Yeah... not true and not the issue here. I could put tie(my $SLEEP_TIME, 'Tie::StdScalar', 5); and my first example would still block indefinitely. select(...) isn't correctly working with tie()'s magic to get the right value of $SLEEP_TIME and instead figures it's undef which is supposed to block. That's the bug I think I'm seeing.