This page was saved using WebZIP 6.0.7.915 on 05/18/04 5:22:41 PM.
Address: http://perl.hamtech.net/advprog/appb_06.htm
Title: [Appendix B] B.6 Dynamic Behavior  •  Size: 6066  •  Last Modified: Wed, 22 Nov 2000 18:26:52 GMT

Advanced Perl Programming

Advanced Perl ProgrammingSearch this book
Previous: B.5 ObjectsAppendix B
Syntax Summary
Next: B.7 Exception Handling
 

B.6 Dynamic Behavior

  1. Symbolic references:

    $i = "foo";
    $$i = 10;             # Sets $foo to 10
    ${"i"} = 10;          # Sets $foo to 10
    &$i();                # Calls foo();
    push (@$i, 10, 20);   # Pushes 10,20 into @foo
  2. Run-time expression evaluation:

    while (defined($str = <STDIN>)) {
        eval ($str);
        print "Error: $@" if $@;
    }

    This is a tiny Perl shell, which reads standard input, treats $str as a small program, and puts the compilation and run-time errors in $@.

  3. Dynamic substitutions. Use the /e flag for the s/// operator, to specify an expression instead of a pattern:

    $l = "You owe me 400+100 dollars";
    $l =~ s/(\d+)\+(\d+)/$1 + $2/e;
    print $l; # prints "You own me 500 dollars"
  4. Module and object method invocations (see also #20 and #21):

    $modulename->foo(); # Calls foo() in the module indicated by
                        # $modulename


Previous: B.5 ObjectsAdvanced Perl ProgrammingNext: B.7 Exception Handling
B.5 ObjectsBook IndexB.7 Exception Handling