Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: If any element-in-array comparision

by chessgui (Scribe)
on Jan 27, 2012 at 16:22 UTC ( [id://950406]=note: print w/replies, xml ) Need Help??


in reply to Re: If any element-in-array comparision
in thread If any element-in-array comparision

I learned at this site that there are utilities for lists. For example to get the maximum value of a list:
use List::UtilsBy qw(max_by); my @list=(0.03,0.04,0.01); my $max=max_by {$_} @list; print "Maximum of ",join(',',@list)," is $max\n";

Replies are listed 'Best First'.
Re^3: If any element-in-array comparision
by fisher (Priest) on Jan 27, 2012 at 16:29 UTC
    Yes, you're of course right. By stating that 'you need to go through list' I meant that general algorythm goes through list at least once and this is a must. What you will use for that task - List::Utils or grep or your own cycle - isn't important in this context.

    And of course I can provide some code snippets, but I feel that this would be a bad idea for OP who doesn't show us a line of his own.
      well my own code was like this.
      #!/usr/bin/perl -w use strict; use warnings; my @data=<>; foreach (@data) { my @row=split(/\t/, $_); my $otuhead=shift(@row); my $logic=1; foreach (@row) { if ($_>=0.01){$logic++;} } if ($logic!=1){print "$otuhead @row";} $otuhead=(); }

      And yes I am acutely aware that the basic algorithm for finding out max, min etc. from a list has actually go through the list. I was just looking for utilities, commands, or whatnot that can make it well ... look nice would probably be the best explanation. Something that does not need extra curly brackets and extra declared variables. Extra space and hmm more general eyestrain. The question was more motivated by general curiosity than an actual need for this current problem. Which I have already solved (probably quite horribly as people soon will point out I guess :D)

      edit: in code I shift off the first element -because it is a header and therefore not numerical.

        Well, ok, then, in addition to other's versions ++ mine:
        #!/usr/bin/env perl use strict; use warnings; my @akj = (0.11, 0.05, 0.02); print join ",", @akj if grep {$_>0.1} @akj;

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (2)
As of 2024-04-20 06:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found