in reply to Extracting Columns from line

G'day snape,

Given this extract from your posted code:

print $col,"\n"; ## string of all the columns I am interested in ... @line = @line[$col]; ## I am getting the error since, # $line is a string and not numeric.. # It works if you do # @line[1,2,5,6,70,71,75,100,112,114]

I suspect you haven't fully understood array slices. They're explained in perldata: Slices.

This piece of code (which borrows from your variable names), should explain what I think you need:

#!/usr/bin/env perl -l use strict; use warnings; my @line = qw{A B C D}; print "All line elements: @line"; my $col = '2,3'; print "Indices I want: $col"; my @indices = split /,/ => $col; my @wanted_elements = @line[@indices]; print "Wanted elements: @wanted_elements";

Output:

All line elements: A B C D Indices I want: 2,3 Wanted elements: C D

-- Ken

Replies are listed 'Best First'.
Re^2: Extracting Columns from line
by boftx (Deacon) on Oct 23, 2013 at 04:59 UTC

    Curse you, Ken! You posted (what could be a better solution) while I was working up my sample! :)

    Jim

    The answer to the question "Can we do this?" is always an emphatic "Yes!" Just give me enough time and money.
Re^2: Extracting Columns from line
by snape (Pilgrim) on Oct 23, 2013 at 05:16 UTC

    awesome !! you guys rock ..