in reply to Re^4: How to safely use $_ in a library function?
in thread How to safely use $_ in a library function?
Really? I get this...
#!/usr/bin/env perl use strict; use warnings; for (qw(literal1 literal2 literal3)) { print "$_\n"; foo('wilma'); } sub foo { Internals::SvREADONLY($_, 0); $_ = 'fred'; goto &bar; } sub bar { my ($name) = @_; print "foo --> name = $name, \$_ = $_\n"; } __END__ literal1 foo --> name = wilma, $_ = fred literal2 foo --> name = wilma, $_ = fred literal3 foo --> name = wilma, $_ = fred
You can see what Internals functions you have like this:
perl -E'say for sort keys %Internals::'
Many of these built-in functions, including stuff in the Internals, utf8, re and UNIVERSAL packages amongst others, are defined in the file universal.c in the Perl source code. Search in the file for the string "xsub_details" and you will find a list. That's not a comprehensive list though; Internals::V and mro::get_linear_isa are certainly missing.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: How to safely use $_ in a library function?
by Athanasius (Archbishop) on Sep 18, 2013 at 15:47 UTC | |
by tobyink (Canon) on Sep 19, 2013 at 07:10 UTC | |
by Athanasius (Archbishop) on Sep 19, 2013 at 07:43 UTC | |
by tobyink (Canon) on Sep 19, 2013 at 08:16 UTC | |
by Athanasius (Archbishop) on Sep 19, 2013 at 09:31 UTC |