Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^18: How to store the output from foreach loop into variable/array without printing?

by hellohello1 (Sexton)
on Mar 21, 2014 at 05:45 UTC ( [id://1079187]=note: print w/replies, xml ) Need Help??


in reply to Re^17: How to store the output from foreach loop into variable/array without printing?
in thread How to store the output from foreach loop into variable/array without printing?

Thanks for the useful links in your previous post. I have been reading them. I am still reading up on the doc that you post it here regarding about the array of array while referring to your code structure. Can I ask if I could also take a look at how you get the average of the ratio values as well?

I would like to take the time to read it thru and then referred to your code as I learn better that way. I will post it here if I have problem understanding and also my code once I get the hang of it.

Another question, when splitting the data (by tab since its tab delimited file), it will be split according to columns right (downwards). Is it possible to split by rows (horizontal)? Will that be easier for this kind of ratio thing or it doesn't make a difference?
  • Comment on Re^18: How to store the output from foreach loop into variable/array without printing?

Replies are listed 'Best First'.
Re^19: How to store the output from foreach loop into variable/array without printing?
by Anonymous Monk on Mar 21, 2014 at 07:21 UTC

    Can I ask if I could also take a look at how you get the average of the ratio values as well?

    Sure, here it is both makeRatioAvg and makeFinal

    As you might guess, makeRatioAvg and makeFinal is still me following closely the pencil and paper moves -- didn't want to get lost :) Now I have reference program with reference test data, so if I get ambitious and try to combine makeRatioAvg+makeFinal I will notice easily when I make mistake :)


    Another question, when splitting the data (by tab since its tab delimited file), it will be split according to columns right (downwards). Is it possible to split by rows (horizontal)? Will that be easier for this kind of ratio thing or it doesn't make a difference?

    I'm not quite sure what you mean, but I doubt it makes much of a difference, here is why

    rows are lines ... each lines consists of tab seperated values (columns of a row) , so you're already doing what is possible in the most straight forward way

    the only issue I saw with your code is you had "while while" loop, where the outer while was used just for the header ... I wrote that as

    It was called from DoWorkOriginal

    Where sub monkeyBusiness is the foreach loops from your code which I didn't understand

    The general strategy when I don't understand why/how something works, before I can begin to debug/improve, is to isolate/sequester everything into subroutines, and make sure it produces same output as original

      Thank you :) I am a very slow learner, so it will take me quite a while for me to digest and reply you.

      Before that, I want to clarify something really noob:

      my( $infh ) = @_;
      @_ refer to the whole dataset right? But if I want to only include data from column 4 onward to the end, I have to write a function to split the data and then take column 4 to end and put it into @_?

        @_ refer to the whole dataset right?

        Do a ctrl+f for spankTheMonkey to see what spankTheMonkey is being given (which args are passed)

        Then see perlvar#@_ Within a subroutine the array @_ contains the parameters passed to that subroutine.

        So, @_ is not "the whole dataset", there is no variable "the whole" of type "dataset" :)

        But if I want to only include data from column 4 onward to the end, I have to write a function to split the data and then take column 4 to end and put it into @_?

        Yes, you can modify spankTheMonkey to discard parts ... essentially turning it from readFullData into readColumnRange( $in_filehandle, 4 .. 10 );

        perlintro#Arrays ought to help

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1079187]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2024-04-24 06:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found