http://qs321.pair.com?node_id=11135936


in reply to Re^2: Not sure how to handle this scope (updated)
in thread Not sure how to handle this scope

Thanks guys, I left out a lot of details- but the { } are actually a forked loop and the self that contains the mysql handle goes away for each fork. That's why I'm trying to do this- BUT I want to run sometimes forked , and sometimes not, and for the not case- I want to use the object from outside the loop.. I realize this if pretty fugly but there is a lot of motivation to do it.

But aisde from all that the real question is why does self go undef, and not use the scope outside the braces?

  • Comment on Re^3: Not sure how to handle this scope (updated)

Replies are listed 'Best First'.
Re^4: Not sure how to handle this scope (updated)
by Corion (Patriarch) on Aug 18, 2021 at 18:44 UTC

    Maybe give the inner variable a different name and assign it the value from the "main" handle in the non-fork case?

    my $main_dbh = DBI->connect(...); while( 1 ) { my $dbh; if( $forked ) { $dbh = DBI->connect(...); } else { $dbh = $main_dbh; }; $dbh->selectall_arrayref($sql); }