NAME

bare.pm - scalars without sigils

SYNOPSIS

use bare qw(foo bar);

foo=3; bar=4;
print foo+bar; #7

foo=bar=3;
print foo=5,foo+bar #58

# Note that foo and $foo are aliased, eg:
die unless foo==$foo;
die unless bar==$bar;
print "foo: $foo, bar: $bar"; #foo: 3, bar: 3

DESCRIPTION

Everyone knows that Perl looks like line noise. Not anymore! bare.pm lets you access scalar variables without a leading sigil.

BUGS AND LIMITATIONS

Note carefully that these are not lexical variables. You can only have one variable foo, which is aliased to the package variable $foo. You can, however, localize such a variable like so:

use bare 'foo';
foo=3;
{
  local $foo = 7;
  die unless foo==7;
}
die unless foo==3;

There are various other cases where you will have to use a sigil, eg:

To interpolate a bare in a string:
  use bare 'x'; print "x=$x"

For use on a loop variable, eg:
  use bare 'x'; for $x (0..20) { ... }

bares are implemented as subs, so sigil-less access is quite a bit slower than "native" scalars that use sigils. For code where performance is important, you'll have to use sigils.

LICENSE AND COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Brian Szymanski