in reply to Re^4: Scope of variables
in thread Scope of variables

I think you have it there. A variable of the same name exists in main and in ora. So you have to spell out which one you mean. Perhaps this will help:
#!/usr/bin/perl use strict; use warnings; # package main (default); our $ora_errstr = 'main'; { package ora; our $ora_errstr = 'ora'; print "package ora\n"; print "\$ora_errstr: $ora_errstr\n"; print "\$main::ora_errstr: $main::ora_errstr\n"; print "\n\n"; } package main; print "package main\n"; print "\$ora_errstr: $ora_errstr\n"; print "\$ora::ora_errstr: $ora::ora_errstr\n"; __DATA__ ---------- Capture Output ---------- > "C:\Perl\bin\perl.exe" _new.pl package ora $ora_errstr: ora $main::ora_errstr: main package main $ora_errstr: main $ora::ora_errstr: ora > Terminated with exit code 0.