in reply to Returning information from BEGIN

Your question about exporting variables from the BEGIN block does not make sense. BEGIN blocks are simply subroutines that are called at compile time. Other than that, they behave just like any other subroutine.

Variables are exported from packages, not from subroutines.

Replies are listed 'Best First'.
Re: Re: Returning information from BEGIN
by leons (Pilgrim) on Feb 21, 2001 at 21:15 UTC
    Okay, here is what I did:

    BEGIN { use vars qw($Bgn); $Bgn=1 unless $ENV{'SM'}; push @INC,$ENV{'SM'}||""."/../bin"; }; use strict; die "[Error] Environmental string not found: \$SM\n" if $Bgn; require 'errors.pm'; ... ...

    To avoid getting the ugly Error-message when die-ing in the
    BEGIN-block I wanted to set some variable which I would use
    after the BEGIN-block to check whether there was an error.
    In this case the error would have been the fact that the $SM
    environment string hadn't been set. Which would result in
    an error message in the BEGIN-block
    Use of uninitialized value in concatenation (.) at ./test.s line 19
    (Which was solved by the '||""'). And which would result in
    an error message due to the require 'errors.pm';
    Which could not be found in $SM/../bin/, because $SM hadn't
    been set.

    But fortunately, things are working now ;-)

    Thanks and Bye, Leon