I use 5.6.x so don't actually have bigint. This is called obfuscation after all :-) The reason it does not work is that => is just a synonym for , in Perl so it reads use, bigint Or it should. Actually that , syntax parses as an error, whereas => syntax is OK GOK?
C:\>type test.pl
use, strict
C:\>perl -MO=Deparse test.pl
syntax error at test.pl line 1, near "use,"
test.pl had compilation errors.
C:\>type test.pl
use => strict
C:\>perl -MO=Deparse test.pl
'???', '???';
test.pl syntax OK
C:\>
The output of the obfuscated code seems to be good for about 45 places (at least on my box running Perl v5.8.3 built for i386-linux-thread-multi) before it differs from the reference values from the On-Line Encyclopedia of Integer Sequences.
If you want more precision, you might be interested in Unbounded Spigot Algorithms for the Digits of π by Jeremy Gibbons. It's a fun read, and you can adapt the methods presented in his paper to computing e digit by digit.
The inaccuracy appears to be the result of roundoff error; use bigint; or use Math::BigInt ':constant'; (as suggested by tachyon and bageler) fixes that also.
Also, my algorithm is streaming in Gibbons' sense. It represents the continued fraction as a composition of linear fractional transformations.