my $iter = TQDM::tqdm(1..10); while (<$iter>) { print "got [$_]\n"; } #### sub iterate ($&) { my ($ary, $code) = @_; for (@$ary) { print "progress bar: $_\n"; $code->(); } } sub tqdm { bless [ @_ ] } iterate tqdm(1..10), sub { print "got [$_]\n"; };