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
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|