in reply to Setting Global Variable in Sub

Short answer - no. Long answer, you're declaring the variables with my which means they're lexical and will survive until the end of the block or until the end of file. ($main::xxx will let you access globals, not lexicals). Now you can have lexicals which act as globals (do a search on uninteded globals) ala

#!/usr/bin/perl -w use strict; my( $COOKIE ) = "derby"; print $COOKIE, "\n"; asub(); print $COOKIE, "\n"; sub asub { $COOKIE = "derby_2"; }

but I think in this case you may have another my( $COOKIE_ID ) in your sub which will mask the unintended global ala -

#!/usr/bin/perl -w use strict; my( $COOKIE ) = ""; print $COOKIE, "\n"; asub(); print $COOKIE, "\n"; sub asub { my( $COOKIE ) = "derby_2"; }

some code would be nice (and prepare yourself for the globals bad comments)

-derby