Thanks. I found more info about the warning...
Curious, but is perldiag a program or part of the built-in help? Cuz when I type perldiag at the linux prompt it does nothing.
I googled perldiag, and found this page, that helped me understand that I need to create the sub anonymously, that way it's created at runtime, rather than at compile time...
SO, fwiw, I was able to fix my warning by assigning the nested function named inlineFind to a variable anonymously like the following:
#!/usr/bin/perl use strict; use warnings; use File::Find; sub SymLinkFind($); my %params; $params{recurseDir} = "."; SymLinkFind(\%params); print "Found ", $params{numoLinks}, " Symbolic Links...\n"; sub SymLinkFind($) { my $reparams = shift; my @SymLinks; my $subhold = sub { #<--this line changed my $namey = $File::Find::name; if (-l) { push @SymLinks, $namey; } }; #<--remember ; to complete variable assign find $subhold, $reparams->{recurseDir}; # <--use variable instead of + named function. $reparams->{Links} = \@SymLinks; $reparams->{numoLinks} = scalar(@SymLinks); return; }
And that got rid of the warning. So is there any great impact on the performance of this, if it is compiled at runtime? I didn't see any in running my simple example.
Thanks,
--Ray
In reply to Re^2: Strictly nested sub warnings
by raybies
in thread Strictly nested sub warnings
by raybies
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |