add_var is defined out of the scope of
strict. Also, strict does not mean you can only use subroutines defined by the classical
sub name {...} (cf. AUTOLOAD). It means you cannot use barewords for undeclared subroutines - try removing the parentheses when calling the subroutines.