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;

To interpolate a bare in a string, you will have to use a sigil, eg:

use bare 'x';

print "x=$x";

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