Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Sorting one column of results

by perlnoobster (Sexton)
on Nov 12, 2012 at 10:35 UTC ( #1003409=perlquestion: print w/ replies, xml ) Need Help??
perlnoobster has asked for the wisdom of the Perl Monks concerning the following question:

Hi Perl monks, I was wondering if someone could help me, I've constructed the following coding:
my $infile="orders.txt"; my $output2 = 'orders_today.txt'; open (OUT, "+>$output2"); open (FILE, $infile) or die "ERROR: File does not exist\n"; for (<FILE>) { my @text=(); #chomp; @text = split /\t/,$_; chomp @text; push (@connections,$text[0]); $sku{$text[0]}=$text[0]; $title{$text[0]}=$text[1]; print OUT "$text[10]\n$text[11]\nQuantity:$text[12]\n\n$text[16]\n +$text[17]\n$text[18]\n$text[19]\n$text[20]\n$text[21]\n$text[22]\n$te +xt[23]\n\n\n"; }
The coding basically opens a file and prints out another file with selected columns from the original file, all I need to do is sort it by $text 10 by (A to Z) Please can someone help me? Thank you

Comment on Sorting one column of results
Download Code
Re: Sorting one column of results
by choroba (Abbot) on Nov 12, 2012 at 10:40 UTC
    Instead of printing to OUT, push [@text] to an array. Then, sort the array by { $a->[10] cmp $b->[10] } and print map @$_ it.
    لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
      hello choroba, Thank you for replying, I have adjusted the coding to the following but it still does not work?, please help?
      my $infile="orders.txt"; my $output2 = 'orders_today.txt'; open (OUT, "+>$output2"); open (FILE, $infile) or die "ERROR: File does not exist\n"; for (<FILE>) { my @text =(); @text = split /\t/,$_; chomp @text; push (@text, $text[0]); push (@text, $text[1]); push (@text,$text[2]); push (@text,$text[3]); { $a->[10] cmp $b->[10] } print map @$_ }
        I assumed you knew more about Perl. My fault. When using a function you do not know yet, consult its documentation.
        Here is what I had in mind:
        #!/usr/bin/perl use warnings; use strict; my $infile = 'orders.txt'; my $output = 'orders_today.txt'; open my $IN, '<', $infile or die "ERROR: Cannot open '$infile': $!"; my @out; while (<$IN>) { chomp; my @text = split /\t/; push @out, [@text]; } open my $OUT, '>', $output or die "Cannot open '$output': $!"; print {$OUT} map "@$_\n", sort { $a->[10] cmp $b->[10] } @out;
        لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Re: Sorting one column of results
by Anonymous Monk on Nov 12, 2012 at 10:41 UTC
    use sort, and then you're done

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1003409]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2014-07-26 18:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (178 votes), past polls