Help for this page

Select Code to Download


  1. or download this
    BEGIN { eval 'sub foo { return 2 }'; }
    my $i = foo 3;  # my $i = 2;
    print("$i\n");
    
  2. or download this
    eval 'sub foo { return 2 }';
    my $i = foo 3;  # Syntax error!
    print("$i\n");
    
  3. or download this
    BEGIN { eval 'sub foo(\@) { print(@{$_[0]}, "\n"); }'; }
    my @a = qw( foo bar );
    foo(@a);  # foobar
    
  4. or download this
    eval 'sub foo(\@) { print(@{$_[0]}, "\n"); }';
    my @a = qw( foo bar );
    foo(@a);  # [undef]
    
  5. or download this
    BEGIN { eval 'sub foo { print("foo\n"); }'; }
    BEGIN { foo(); }  # foo
    
  6. or download this
    eval 'sub foo { print("foo\n"); }';
    BEGIN { foo(); }  # Dies. Can't find foo()