On Fri, Feb 27, 2015 at 8:24 PM, Martin G. McCormick
<mar...@server1.shellworld.net> wrote:
> Brock Wilcox writes:
>> I'm afraid a bit more context is needed to identify the problem. Could you
>> post your entire bit of code into a gist or pastebin or something for us
>> to
>> see?
>
>         I'll do better than that. This is a script which is
> stripped of everything but the problem code. It is 20 lines long
> and here it is.
>
> #!/usr/bin/perl -w
> use strict;
>
> #Declare main variables.
>
> #main locals
> my @tasks;
> my $task;
> my $report_static;
> $report_static = sub {
>     print "$task\n";
> };
>
> #MAIN_CODE START
> $tasks[0] = "red";
> $tasks[1] = "blue";
> $tasks[2] = "green";
> foreach $task (@tasks) {
>     &$report_static;
> }
>

I'm not sure why you don't just pass $task as an argument to the
report_xxx subs...?

A closure (perldoc -q closure)  would be the long way around unless
I've missed something:

my $task;
my $iter;
my $report_static = sub { my $ref = shift;
                                     print  $ref->[$iter++];
                                      ....
                                    };

my $report_dynamic = sub( my $ref = shift;
                                           print $ref->[$iter++];
                                       ...

#MAIN_CODE START
....
foreach $task (@tasks) {
     if ( .... )
           $report_static->(\@tasks);
           ...
     else
            $report_dynamic->(\@tasks);
           ...
     }
}

-- 
Charles DeRykus

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to