I read your post far enough to realize you were ostensibly
writing a replacement for
reset. Though I have
used Perl since PERL days I had no idea what
reset did. Looking it up, I wrote the following.
Coming back to look at your code I realize your code has
little to do with reset. It is not
clear to me what you want your code to do, but rather
than try to find your program and parse it, I would suggest
you might walk the symbol table and read scratchpads if need be.
Be well.
sub r_reset {
# This routine emulates the Perl CORE reset function
# which is deprecated. It does not work without an
# argument as ?? ops are also deprecated.
die "Wrong args to r_reset" unless 1 == @_;
my $chr = shift;
die "Invalid characters in arg to r_reset"
unless $chr =~ /^[-\w]+$/;
die "Uppercase characters in arg to r_reset"
if $chr =~ /[A-Z]/;
my $pkg = caller();
no strict 'refs';
foreach my $var (grep /^[$chr]/, keys %{"$pkg" ."::"}){
undef ${$pkg . '::' . $var};
undef @{$pkg . '::' . $var};
undef %{$pkg . '::' . $var};
}
}
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.