Dan Muey wrote:
>
> Rob Dixon wrote:
> >
> > Dan Muey wrote:
> > >
> > > In developing a module and I am torn.
> > >
> > > I want to use the newer our $variable; but to make it work
> > > with pre 5.6 Perl (or whatever version our appeared in) I
> > > have to do the use vars qw($variable); method
> > >
> > > So I was wanting some input about pros and cons of using
> > > either since on the surface they appear to do the same
> > > thing except that use vars is backwards compatable.
> > >
> > > Any input on our vs. use vars ?? Pro,con, neutral ??
> >
> > The main issue about 'our' as opposed to 'use vars' is that
> > the of scope. 'use vars' compiles to a BEGIN block which,
> > wherever it is used, makes the package variables visible
> > throughout the file. An 'our' declaration provides access to
> > a package variable up to the end of the current block or
> > file.
> >
> > You can safely use 'our' in place of 'use vars', but not
> > necessarily vice versa.
>
> Yes that's helps a lot. So I'm still stuck with wanting to do
> our but needing backward compatibility.
>
> I wonder if I should check the version and do our if it's 5.6
> and do use vars if it's older. Except the BEGIN stuff would
> probably make it not work as expected. Or I could do two
> versions of the module and folks could install which one they
> need based on their Perl version.
>
> Or I could say "upgrade your Perl!" and just do our! :)

I'd say to use 'our' for all new stuff, but make sure that any
shared code uses it only at the head of the program with all the
other BEGIN-like code.

If it doesn't work send them to me :)

Rob



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to