Acme::SubstituteSubs - Replace subroutines at run-time


Acme-SubstituteSubs documentation  | view source Contained in the Acme-SubstituteSubs distribution.

Index


NAME

Top

Acme::SubstituteSubs - Replace subroutines at run-time

SYNOPSIS

Top

    use Acme::SubstituteSubs;

    sub say_hi { print "hihihihi!\n"; }

    my $say_hi = Acme::SubstituteSubs->get('main::say_hi') or die;
    $say_hi =~ s/"hi/"hihi/;
    Acme::SubstituteSubs->set('main::say_hi', $say_hi) or die;
    say_hi();

    exec 'perl', $0;




DESCRIPTION

Top

Replaces subroutine definitions in the source code, probably for code that edits itself or lets its user edit it.

Acme::SubstituteSubs->get($qualified_function_name)

Returns the text of the named function straight from the source file. For the purposes of this module, all code comes from and goes to the top-level .pl file as indicated by FindBin's $RealScript value. Returns nothing if the sub is not found.

Acme::SubstituteSubs->set($qualified_function_name, $replacement_code)

Replaces the copy of the function or method specified by $qualified_function_name with the code specified in $replacement_code in the source code of the script (see above). set uses B::Deparse if passed a coderef.

If the function name doesn't already exist, it'll be added to the end of the appropriate package. If the package doesn't already exist in the source file of the script, it'll be added to the end and the new function placed after it.

If attempting to replace a function defined elsewhere than the top level .pl file, such as in some module, the module won't be changed, but the code will instead be replicated into the main script. The result is undefined when run from perl -e.

dies if it fails to write and replace the original source file.

Acme::SubstituteSubs->list()

Lists namespace::function combinations available for edit.

Acme::SubstituteSubs->list_packages()

Lists packages defined in the source script.

TODO/BUGS

Top

HISTORY

Top

0.02

Fixed the example.

0.01

Original version; created by h2xs 1.23 with options

  -A -C -X -b 5.8.0 -c -n Acme::SubstituteSubs --extra-anchovies

SEE ALSO

Top

If you're using Acme modules, a therapist.

AUTHOR

Top

Scott Walters, <scott@slowass.net>

COPYRIGHT AND LICENSE

Top


Acme-SubstituteSubs documentation  | view source Contained in the Acme-SubstituteSubs distribution.