#! perl -slw use strict; sub clean { my( @dirty ) = @_; my @clean; for ( @dirty ) { s[\s*(\S+)\s*][$1]; push @clean, $_; } return @clean; } sub double { my( @data ) = @_; my @doubled; for ( @data ) { push @doubled, $_ *2; } return @doubled; } open FILE, '<', 'data\1millionlines.dat' or die $!; my @data = ; my @cleaned = clean( @data ); my @doubled = double @cleaned; print for @doubled; printf 'Check mem.'; ; #### #! perl -slw use strict; sub clean { my( $dirty ) = @_; s[\s*(\S+)\s*][$1] for @$dirty; } sub double { my( $data ) = @_; $_ *= 2 for @$data; } open FILE, '<', 'data\1millionlines.dat' or die $!; my @data = ; clean( \@data ); double( \@data ); print for @data; printf 'Check mem.'; ; #### perl -nlwe" m[s*(\S+)\s*] and print $1*2" data\1millionlines.dat