#!/usr/bin/perl use warnings; use strict; my $verbose = shift // 0; my $excluded = 2; my $count = 42; my $completed = 6; my $notify_progress = build_output_subroutine(); $notify_progress->(); $completed = 7; $notify_progress->(); sub build_output_subroutine { my @out; if ($verbose) { return sub { print "Processing: ", $count, " files to process ; ", $excluded, " files excluded; ", $completed, " files completed\n" }; } else { return sub { print "Processing: ", $count, " files to process ; ", $completed, " files completed\n" }; } }