package Inline::Subs; use strict; use Regexp::Common; use Filter::Simple; my $re = qr< sub ( [_a-zA-Z](?:[\w_]+) ) \s* : \s* inline \s* ( $RE{balanced}{-parens => '{}' ) >x; FILTER_ONLY code => sub { while(my($subname, $code) = /$re/) { s/$re// and s/\b$subname\b/$code/g; } } ; q[ and the rest is silence ];