use strict; use warnings; use Iterator::Diamond; my $iterator = Iterator::Diamond->new(magic => 'stdin'); while ($iterator->has_next) { my $line = $iterator->next; # ... process a chunk of input ... # ... print result ... }