#!/usr/perl/bin/perl -w use strict; my @indexes = qw (3 0 4 5 6 7); open INDATA,"; return unless defined($row); return (split(/\s+/,$row))[@indexes]; } test::process(\&read_row); close INDATA; package test; sub process { my $callback = shift; while (my @row = &$callback) { print "test : " . join(",",@row) . "\n"; } } 1;